document.addEventListener('contextmenu', function (e) {
e.preventDefault()
e.stopPropagation()
e.returnValue = false
e.cancleBubble = true
})
没办法?
修改:document.oncontextmenu = null
不起作用。
P.S。我不能拥有监听器功能的引用,因为我不是阻止上下文菜单的站点的所有者。
答案 0 :(得分:18)
在这种情况下我使用我的书签:
javascript:(function(w){
var arr = ['contextmenu','copy','cut','paste','mousedown','mouseup','beforeunload','beforeprint'];
for(var i = 0, x; x = arr[i]; i++){
if(w['on' + x])w['on' + x] = null;
w.addEventListener(x, function(e){e.stopPropagation()}, true);
};
for(var j = 0, f; f = w.frames[j]; j++){try{arguments.callee(f)}catch(e){}}})(window);
答案 1 :(得分:4)
如果您真的绝望,请尝试在调用addEventListener
之前添加此内容。它适用于FF和Chrome。我没有检查任何其他内容。
document.superListener = document.addEventListener;
document.addEventListener = function(type, listener, useCapture){
if(type != 'contextmenu')
document.superListener(type, listener, !!useCapture);
};
这可能不是最好的做事方式,但它应该是你的具体例子所做的工作:)
答案 2 :(得分:0)
为什么不分配右键单击事件,而不是禁用上下文菜单?
http://abeautifulsite.net/2008/05/jquery-right-click-plugin/