我正在尝试在 IE 中禁用 Ctrl+o 组合键,以下代码在除 IE 11 之外的所有 IE 版本中都可以正常工作,除非我像您在下面的代码中看到的那样发出警报:
document.onkeydown = function(event) {
var x = event.keyCode;
console.log(event.keyCode);
console.log(event.ctrlKey);
if ((x == 79) && (event.ctrlKey)) {
if(navigator.userAgent.match(/rv:11.0/i)){
alert('Disabled');
}
event.cancelBubble = true;
event.returnValue = false;
event.keyCode = 0;
event.stopPropagation();
event.preventDefault();
return false;
}
};
我想知道是否有其他人遇到同样的问题并且他们已经解决了。 :-) 谢谢。 亚历克斯
最佳答案
不幸的是,我没有很好的解决方案,但已经与 Microsoft 一起创建了一个案例,并制作了一个演示该问题的 jfiddle。
我们找到的解决这个问题的唯一方法是使用:
<meta http-equiv="X-UA-Compatible" content="IE=7">
header,但不知道何时会取消对它的支持 - 更不用说在 IE7 模式下运行的明显副作用了。
一些补充说明:
- 虽然拦截在 IE8 和 IE9 上原生有效,但只有 IE=7 UA 模式有效
- 无论是在页面中还是在服务器响应中返回, header 都需要重新加载页面才能生效,即您不能在单页应用中选择性地跳出 IE7 模式
- 这是 IE11 构建所依据的标准的链接:http://www.w3.org/TR/DOM-Level-3-Events/#KeyboardEvent-supplemental-interface
fiddle :
http://jsfiddle.net/bw5sLd15/1/
// The kitchen sink
function killKey( event ) {
event.cancelBubble = true;
event.bubbles = false;
event.returnValue = false;
event.stopPropagation();
event.stopImmediatePropagation();
event.preventDefault();
return false;
}
关于javascript - 无法在 IE 11 中通过 JavaScript 禁用 Ctrl+O,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22083984/