【问题标题】:Javascript preventDefault() not working in SafariJavascript preventDefault() 在 Safari 中不起作用
【发布时间】:2020-06-07 20:10:01
【问题描述】:

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

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

    /* Handle mouse events */
});

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

【问题讨论】:

  • 嘿,你可以试试e.stopPropagation()e.stopImmediatePropagation()。 :)
  • @HalilÇakar 两个命令都不起作用
  • 哦,是的,@Wais Kamal 的结果可能对于右键单击事件是正确的。这也是来自stackoverflow的另一个stackoverflow.com/questions/26032971/…

标签: javascript safari


【解决方案1】:

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

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

请注意,右键单击时出现的选项只有在释放右键单击按钮时才会出现,所以我认为mousedown 根本不适合这里。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-29
    • 1970-01-01
    • 1970-01-01
    • 2013-12-22
    • 1970-01-01
    相关资源
    最近更新 更多