javascript – 防止Internet Explorer中的默认击键操作
作者:互联网
我试图在Internet Explorer 10中覆盖ControlP,但似乎无法弄清楚如何做到这一点.我用一些非常简单的代码模拟了一个 Fiddle ,这个代码在Chrome中运行(至少在我的Mac上).但是在IE 10中运行它并使用ControlP仍然会打开打印对话框.
这是我的简单代码:
$('.test').on('keydown', function(e){
if (e.metaKey || e.ctrlKey){
$('body').append('ctrl p pressed');
e.preventDefault();
return false;
}
});
谁知道这里发生了什么?
解决方法:
防止默认行为
>使用attachEvent而不是addEventListener
>将event.keyCode设置为0
>返回false
例如. (防止Ctrl O和Ctrl P的默认行为)
/*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;
}
}
});
}());
请注意. jQuery 1.9使用addEventListener(如果可用). See in github.
标签:jquery,javascript,internet-explorer,internet-explorer-10 来源: https://codeday.me/bug/20190625/1287363.html