Evg*_* A. 10 javascript firefox events cross-browser
在下面的示例中,return false在Firefox 3.6或Chrome 10中单击链接(因为页面滚动到顶部)但在Internet Explorer中工作后似乎不会阻止默认操作.
使用event.preventDefault()做我需要的,但我想知道为什么return false不与其他人一起工作.
附注:我不需要支持Internet Explorer.
<script>
addEventListener("DOMContentLoaded", function(){
document.getElementById("link").addEventListener("click", function(){
alert("Clicked!");
return false;
}, false);
alert("Click handler bound!");
}, false);
</script>
<div style="margin-top: 1200px;">
<a id="link" href="#">Click me!</a>
</div>
Run Code Online (Sandbox Code Playgroud)
Tim*_*own 28
return false跨浏览器工作,但仅适用于分配了"DOM0"方式的事件处理程序,例如
document.getElementById("link").onclick = function() {
alert("Clicked!");
return false;
};
Run Code Online (Sandbox Code Playgroud)
对于分配了DOM Level 2方式的事件处理程序addEventListener(),您必须使用preventDefault():
document.getElementById("link").addEventListener("click", function(evt) {
alert("Clicked!");
evt.preventDefault();
}, false);
Run Code Online (Sandbox Code Playgroud)
事件侦听器经由安装attachEvent()在IE中,任一return false或window.event.returnValue = false将做:
document.getElementById("link").attachEvent("onclick", function() {
alert("Clicked!");
return false;
});
Run Code Online (Sandbox Code Playgroud)