![](/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.