0

次のスクリプトは、FireFox では見事に機能しますが、IE や Chrome ではまったく成功しません....私はこの愚かさに何時間も頭を悩ませてきました....どんな助けも感謝します.

<script type="text/javascript">
 window.onunload = function exitConfirm() 
{
    var answer = confirm("Wait don't GO! I love you!");
    if (answer)
       {
          if(!self.closed)
          {
             window.open("http://myKoolUrl");
          }else{
             window.location.replace("http://myKoolUrl");
          }
       }
 }
</script>

確認は、ページを離れる場合とブラウザ/ページ/タブを閉じる場合の両方で正常に機能しますが、IE/Chrome での選択に関係なく、リダイレクトは行われません。理解するのを手伝ってください。

onbeforeunload を使用して、はるかに単純な例を更新します。

<body onbeforeunload=go();>
function go()
{
   if(confirm("Go to Google"))
   {
     window.location.href = "http://www.google.com";
   }
}
</body>

これはIE/Chrome/Safariでも機能しません。いくつかの異なるマシンを使用して、ある種の設定エラーを排除しようとしました。これは、明らかな何かが欠けているという非常識な状況ですか...??? これらのブラウザでリダイレクトが何もしないのはなぜですか...それは私だけですか? かわいいJSリダイレクトをすべて試しました:

location
location.href
location.reload
location.open
etc

jQueryでも

$(location).attr('href','http://www.google.com');

繰り返しますが、これらはすべて Fire Fox の私のマシンで正常に動作します

4

2 に答える 2

2

このようにもできます

window.location.href = 'http://myKoolUrl';
于 2011-04-29T04:38:40.467 に答える
0

おそらく、Chrome は URL をプリフェッチし、その偽物を認識しているため、リダイレクトしません。有効な URL で試してみるとうまくいきました。

于 2012-01-05T12:09:03.560 に答える