很奇怪! 调用window.location或location.replace重定向到页面,然后再返回!

我处于调试模式,所以我可以看到哪个页面被点击。

当我调用window.locationwindow.location.replace(..)它会转到页面,但然后返回到原始页面!

这怎么可能?

解决方案是添加:

  window.location.replace(...); return false; 

为什么return false会使此工作正常进行?

如果此脚本发生在onclickonsubmit事件上,则不返回或返回true将指示浏览器应采用链接/表单的默认操作。 所以,如果你有一个onclick处理程序,如:

  

然后浏览器将转到Yahoo,然后看到它应该执行链接的其他操作(导航到Google)。 当你指示return false; ,浏览器知道不执行下一个/默认动作。

  

那么,为什么return false; 让这个工作吗?

对于任何事件处理程序,返回true表示继续正常并返回false意味着停止尝试处理事件( 防止默认处理和停止传播 ),尽管有反对使用return false;参数return false;