我正在做一个chrome扩展,偶尔会阻止所有键盘输入临时到达网页(因为扩展的处理程序使用它捕获的键盘输入执行自己的任务)。这个扩展功能在听取所有这些输入信息方面做得很好。preventDefault没有阻止使用Alt修饰符的键
然而,一些键盘输入仍然通过网页!具体来说,某些使用Alt修饰键的键盘输入会到达网页。我复制了这个代码的问题:https://jsfiddle.net/Sophtware/5ucefew2/
有人可以帮助我弄清楚为什么发生这种情况,以及如何解决它:
$(window).get(0).addEventListener("keypress",
function(e){
e.stopPropagation();
e.preventDefault();
}, true);
您可以在此的jsfiddle代码交互?编辑#1:我发现来自preventDefault调用的符号是类似重音符号或其他“组合字符”(如',,¨)的符号。实际上,一旦输入组合字符,输入的下一个字符将始终无法被阻止。
见我的回答如下为你有几个问题和工作的例子。 –