![](/img/trans.png)
[英]How to override event.stopPropagation(),preventDefault().stopImmediatePropagation()
[英]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.