Javascript preventDefault() 在 Safari 中不工作

Javascript preventDefault() not working in Safari

我正在使用 javascript 开发一个应用程序,我想获取鼠标事件。要停止右键单击时出现的选项,我使用 preventDefault() 函数,它在 Firefox 和 Chrome 中有效,但在 Safari 中无效。这是我的代码:

document.querySelector("#GL-Surface").addEventListener("mousedown", function(e) {
    e.preventDefault();

    /* Handle mouse events */
});

从另一个问题中我得知你应该 return false; 但这仍然不起作用。 preventDefault() 然而,当它用于键盘输入时,它在 Safari 中有效。那么如何才能阻止 Safari 中鼠标事件的默认操作呢?

要定位右键单击事件,请使用 contextmenu 而不是 mousedown

document.querySelector("#GL-Surface").addEventListener("contextmenu", function(e) {
    e.preventDefault();
});

请注意,右键出现的选项只有在释放右键时才会出现,所以我认为mousedown在这里完全不合适。