Javascript 防止Internet Explorer中的默认击键操作
我试图覆盖InternetExplorer10中的ControlP,但似乎不知道如何实现。我已经用一些在Chrome上运行的非常简单的代码(至少在我的Mac上)模拟了一个。但在IE10中运行此命令并使用ControlP仍会打开“打印”对话框 以下是我的简单代码:Javascript 防止Internet Explorer中的默认击键操作,javascript,jquery,internet-explorer,internet-explorer-10,Javascript,Jquery,Internet Explorer,Internet Explorer 10,我试图覆盖InternetExplorer10中的ControlP,但似乎不知道如何实现。我已经用一些在Chrome上运行的非常简单的代码(至少在我的Mac上)模拟了一个。但在IE10中运行此命令并使用ControlP仍会打开“打印”对话框 以下是我的简单代码: $('.test').on('keydown', function(e){ if (e.metaKey || e.ctrlKey){ $('body').append('ctrl p pressed');
$('.test').on('keydown', function(e){
if (e.metaKey || e.ctrlKey){
$('body').append('ctrl p pressed');
e.preventDefault();
return false;
}
});
有人知道这是怎么回事吗 以防止默认行为
- 使用代替
- 将
设置为0event.keyCode
- 返回错误
请注意。jQuery 1.9使用
addEventListener
(如果可用) 你找到这个问题的解决方案了吗?我提交了一个Microsoft Connect->谢谢的bug。我从来没有找到解决这个问题的办法。干得好!我认为IE11文档上IE的最新版本已经超出了这一范围。不再支持attachEvent(…),因此您必须先检查它是否可用if(document.attachEvent){document.attachEvent(…);}
/*jslint browser: true */
(function scriptInitScript() {
"use strict";
document.attachEvent("onkeydown", function handleKeyDown(event) {
if (event.ctrlKey) {
switch (event.keyCode) {
case 79: // o
case 80: // p
event.keyCode = 0;
return false;
}
}
});
}());