2014-04-18 112 views
3

我想禁止鼠標右鍵。但我發現,如果我寫這個:爲什麼我不能使用addEventListener來停止contextmenu事件?

document.addEventListener('contextmenu', function(event) { 
    return false; 
}, false); 

它不會工作,事件仍然會工作。

但如果我把它寫這樣的,

document.oncontextmenu = function() { 
    return false; 
} 

鼠標右鍵將不起作用。

我想知道爲什麼我不能使用addEventListener停止事件contextmenu

+0

什麼是contextmenu? – ravi

+0

並非所有瀏覽器都允許您在整個頁面上禁用上下文菜單。 – DanMan

回答

3

如「Preventing the Browser's Default Action」中所述,返回false值不足以防止默認操作。你需要調用preventDefault()方法上Event對象:

document.addEventListener('contextmenu', function(event) { 
    event.preventDefault(); 
}, true); 

DEMO

+0

它仍然不起作用。我努力了。 – qiuyuntao

+0

@ user3168232我已經更新了我的答案。 – Engineer

+0

爲什麼用這種方式,我們使用event.perventDefault(),而不是返回false? – qiuyuntao

0

我相信你需要useCapture,試圖傳遞true作爲第三個參數 document.addEventListener(),看看有沒有爲您解決。

相關問題