Javascript 防止Internet Explorer中的默认击键操作

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');

我试图覆盖InternetExplorer10中的ControlP,但似乎不知道如何实现。我已经用一些在Chrome上运行的非常简单的代码(至少在我的Mac上)模拟了一个。但在IE10中运行此命令并使用ControlP仍会打开“打印”对话框

以下是我的简单代码:

$('.test').on('keydown', function(e){
    if (e.metaKey || e.ctrlKey){
        $('body').append('ctrl p pressed'); 
        e.preventDefault(); 
        return false; 
    }        
});​

有人知道这是怎么回事吗

以防止默认行为

  • 使用代替
  • event.keyCode
    设置为0
  • 返回错误
比如说。(防止Ctrl+O和Ctrl+P的默认行为)


请注意。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;
            }
        }
    });

}());