【问题标题】:e.preventDefault(); behaviour not working in Firefox?e.preventDefault();行为在 Firefox 中不起作用?
【发布时间】:2023-03-13 18:01:02
【问题描述】:

我有这个处理按键事件的基本功能,一切都很好。但是,在 Firefox 9.0.1 中,我似乎无法阻止显示书签的默认事件。

有什么办法可以防止FF中的默认行为吗?

$(document).keydown(function(evt) {     
    if (evt.which == 66 && evt.ctrlKey) {                             
         if (evt.preventDefault) {
             evt.preventDefault();
         } else {
             evt.returnValue = false;
         }    
         alert("Ctrl+B pressed");
         return false;                      
    }
});

【问题讨论】:

    标签: events firefox key keydown preventdefault


    【解决方案1】:

    似乎是关于alert 的某种错误。试试这个:

    $(document).keydown(function(evt) {     
        if (evt.which == 66 && evt.ctrlKey) {                             
             if (evt.preventDefault) {
                 evt.preventDefault();
             } else {
                 evt.returnValue = false;
             }    
             console.log("Ctrl+B pressed");
             return false;                      
        }
    });
    

    现在不为我打开书签工具栏。我假设您实际上并不想alert 是吗?我认为只要不包含alert,您就可以调用您的方法。

    【讨论】:

    • 不,我没有。它现在有效,警报似乎中止了整个客户端脚本。这就是原因,尽管使用 console.log 进行调试要好得多。谢谢!
    • 不知道为什么 alert 老实说。但是 console.log 通常是更安全的选择!
    猜你喜欢
    • 2015-02-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-26
    • 1970-01-01
    • 2021-11-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多