簡體   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