JavaScript window.location.replace适用于Firefox,但不适用于IE或Chrome

时间:2011-04-29 04:11:30

标签: javascript redirect location onunload

以下脚本在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机器上工作正常

2 个答案:

答案 0 :(得分:2)

你也可以这样做

window.location.href = 'http://myKoolUrl';

答案 1 :(得分:0)

也许Chrome预取URL并知道其伪造,因此不会重定向。尝试使用有效的URL对我有用。