我处于调试模式,因此我可以看到正在访问哪个页面。
当我打电话时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(使用前将#替换为@)