我阅读了有关事件捕获和事件冒泡的知识,并了解到浏览器支持这两种方法。让我们假设在页面渲染后stackoverflow.com
我将点击事件侦听器附加到正文。
var el = document.getElementsByTagName('body')[0];
el.addEventListener('click', function(e) {
alert('Heyyyyy');
e.stopPropagation()
}, true);
注意,我提供了true,以便强制捕获而不是冒泡。为什么尽管叫停宣传,但我仍能通过标签,用户,工作等链接进行导航。
但是,如果我将其更改为:
var el = document.getElementsByTagName('body')[0];
el.addEventListener('click', function(e) {
alert('Heyyyyy');
e.stopPropagation();
e.preventDefault();
}, true);
代码工作正常。