我试图在Internet Explorer 10中覆盖 Control P ,但似乎无法弄清楚如何操作。我已经使用一些非常简单的代码模拟 Fiddle ,这些代码适用于Chrome(至少在我的Mac上)。但是在IE 10中运行并使用 Control P 仍然会打开打印对话框。
这是我的简单代码:
$('.test').on('keydown', function(e){
if (e.metaKey || e.ctrlKey){
$('body').append('ctrl p pressed');
e.preventDefault();
return false;
}
});
任何人都知道这里发生了什么?
答案 0 :(得分:4)
防止默认行为
event.keyCode
设为0 例如。 (防止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