繁体   English   中英

stopPropagation如何取消preventDefault?

[英]How does stopPropagation cancel preventDefault?

我有一个网站不允许通过单击鼠标右键打开上下文菜单。
似乎该网站确实通过在事件oncontextmenu上使用preventDefault来阻止它。
我能够绕过它

window.addEventListener('contextmenu', (event) => {
    event.stopPropagation();
}, true)

我知道preventDefault会阻止事件的默认操作,而stopPropagtion会阻止事件将气泡发射到其父元素。 但是stopPropagation如何取消preventDefault呢?

通过调用stopPropagation ,您可以阻止其他附加的事件侦听器捕获事件。 因此,调用preventDefault的事件侦听器不会捕获它,因此不会阻止上下文菜单打开。

请参见下面的示例。 试图阻止上下文菜单打开的侦听器未被执行,因为调用了stopPropagation

 window.addEventListener('contextmenu', (event) => { console.log('stopPropagation') event.stopPropagation(); }, true) document.body.addEventListener('contextmenu', (event) => { console.log('stop context menu') event.preventDefault(); })
 Right click <br/> <br/> Notice that 'stop context menu' is not logged

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM