如何在按下键时获得第一个选择(防止显示“添加书签”对话框)

How to get first pick at keydown (preventing "add bookmark" dialog from showing)

本文关键字:显示 添加 书签 对话框 添加书签 选择 第一个      更新时间:2023-09-26

我的jQuery应用程序中有一个复选框,您可以选中它来复制<div>。我现在想为操作创建一个Ctrl+d快捷方式。我可以用感知Ctrl+D

$(document).on('keydown',function(e) {  
    debugger;
    if((e.keyCode == 68) && e.ctrlKey){
        $('.duplicate').trigger('click');
    }
});  

但看起来Firefox是先捕获Ctrl+D,然后打开一个对话框"编辑书签"

我怎么能先得到中断,然后等我完成后再把它杀死?我不希望我的用户每次输入Ctrl+D时都必须关闭Firefox对话框。

尝试使用e.preventDefault();:

$(document).on('keydown',function(e) {  
    //debugger;
    if((e.keyCode == 68) && e.ctrlKey){
        $('.duplicate').trigger('click');
        e.preventDefault();
    }
});  

请参阅此处的演示页面(在此处编辑演示)。

顺便说一句,覆盖众所周知的键/命令不是一个好的可用性实践。虽然你可以做到这一点,但最好使用另一种组合键。

您尝试过e.preventDefault();吗?

或者更好的选择——选择不同的组合。当你开始扰乱他们的密钥绑定时,用户通常不喜欢这样。在许多网站上(脑海中浮现的是trello和github),根本没有控制键。您只需键入一个字符就可以调用特殊功能(在github"t"上打开一个页面,您可以在其中键入文件名,它将过滤存储库中的文件)。在大多数情况下,这应该没问题。您通常不需要能够在html body上键入内容。在启动该功能之前,您只需要确保它们不在输入或文本区域内。