右键让我们这样的出路第一。是的,我想隐藏的上下文菜单。不,我不是要防止有人起重内容关闭我的网页。其预期用途是输入用于在浏览器游戏,它将被限制为在网页上的特定区域。

从思想上移动到技术...

var mouse_input = function (evt) {
    // ...
    return false;
}

document.onmousedown = mouse_input; // successful at preventing the menu.
document.addEventListener('mousedown', mouse_input, true); // unsuccessful

有人能向我解释为什么addEventListener版本是无法从射击停止上下文菜单?唯一的区别我能看到的 Safari浏览器的的的 Web检查的是,document.onmousedown有而isAttribute版本有相同的值设置为false,这是真addEventListener值。

有帮助吗?

解决方案

所以我徒劳的搜索突然变得富有成果的。

var mouse_input = function (evt) {
    evt.preventDefault();
}

document.addEventListener('contextmenu', mouse_input, false);

Works的 Safari浏览器火狐preventDefault()的发生停止平常的行动。我不得不改变已被侦听为以适应 Safari浏览器并且更逻辑无论如何该事件。进一步的信息:功能实现事件监听return false没有效果>不应该返回值。

其他提示

要解释的差.. element.onmousedown = somefunction;是一个绝对的分配;你的替换事件的元素上的处理程序。 element.addEventListener(...)是,顾名思义,添加除的处理程序的处理程序的任何(一个或多个)已连接的事件。

scroll top