在通过的addEventListener或element.on附加的事件处理程序`返回FALSE` *
-
27-09-2019 - |
题
右键让我们这样的出路第一。是的,我想隐藏的上下文菜单。不,我不是要防止有人起重内容关闭我的网页。其预期用途是输入用于在浏览器游戏,它将被限制为在网页上的特定区域。
从思想上移动到技术...
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(...)
是,顾名思义,添加除的处理程序的处理程序的任何(一个或多个)已连接的事件。
不隶属于 StackOverflow