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

时间:2010-09-09 16:26:18

标签: javascript jquery

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

当我拨打window.locationwindow.location.replace(..)时,它会转到该页面,然后返回原始页面!

这怎么可能?

解决方案是添加:

    window.location.replace(...);

    return false;

为什么return false现在正常运作?

1 个答案:

答案 0 :(得分:3)

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

<a href="http://www.google.com/" onclick="window.location = 'http://www.yahoo.com/';">

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

<a href="http://www.google.com/" onclick="window.location = 'http://www.yahoo.com/'; return false;">

那么,return false;为什么要这样做呢?

对于任何事件处理者,返回true表示继续正常并返回false表示停止尝试处理事件(prevents default handling and stops propagation),尽管有{{3} }}