2011-04-29 249 views
0

以下脚本在FireFox中运行良好,但在IE或Chrome中完全没有成功....我一直在为这个愚蠢的目标而奋斗几个小时....任何帮助表示赞赏。JavaScript window.location.replace适用于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> 

确认两个页面休假和broswer /网页/标签的接近,但不管选择选择在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'); 

再次在消防福克斯在我的机器上所有这些做工精细

+2

我不得不提到,这种行为在“良好”的网页设计中是非常不满的。再次猜测用户的活动通常是一个糟糕的主意。 – Ben 2011-04-29 04:19:18

+0

@Steve这是网页设计的可怕之处,并且通常令人恼火,但它每年赚取数十亿美元,如果这些销售停止赚钱,那么我们就不再让人们设计:-) – Zjoia 2011-04-29 06:34:29

回答

2

你能做到这样也

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

这是一种膨胀的方式,但没有什么解决我的问题,同样的行为展示,在FF中工作,但不是在IE/Chrome – Zjoia 2011-04-29 06:35:34

+0

我已经尝试过这在铬和IE浏览器在我的末端它为我工作,因为尝试在代码中使用此一次''窗口.location.href ='http://www.google.com';' – 2011-04-29 06:39:22

+0

我可以在2台不同的机器上重现这一点,也许有一个秘密阴谋反对我的重定向实际工作。我已经实施了您的解决方案,就像您在这里一样 http://s56.net/test.html – Zjoia 2011-04-29 07:57:54

0

也许Chrome会预取URL并知道它的虚假内容,因此不会重定向。尝试使用有效的URL已经为我工作。

相关问题