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

2024-05-15

我处于调试模式,因此我可以看到正在访问哪个页面。

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

怎么会这样??

解决方案是添加:

    window.location.replace(...);

    return false;

为什么return false现在可以正常工作吗?


如果这个脚本发生在onclick or onsubmit事件,然后不返回或返回true将指示浏览器应对链接/表单采取默认操作。所以,如果你有一个onclick处理程序如:

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

然后浏览器将转到雅虎,然后看到它应该执行链接的其他操作(导航到谷歌)。当您表明return false;,浏览器知道不执行下一个/默认操作。

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

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

对于任何事件处理程序,返回true表示正常继续并返回false意味着停止尝试处理事件(防止默认处理并停止传播 https://stackoverflow.com/questions/1357118/javascript-event-preventdefault-vs-return-false),虽然有反对使用的论点return false; http://fuelyourcoding.com/jquery-events-stop-misusing-return-false/.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

很奇怪!调用 window.location 或 location.replace 会重定向到该页面,然后再次返回! 的相关文章

随机推荐