我试图在IE 8中运行它,但它不工作,任何想法?它工作在火狐,Chrome,歌剧......为什么keydown监听器在IE中不起作用
preventBackspace();
function preventBackspace() {
try {
if (window.addEventListener) {
window.addEventListener("keydown", onKeyDown, true);
} else if (window.attachEvent) { // IE
alert(window);
window.attachEvent("onkeydown", onKeyDown);
} else {
document.addEventListener("keydown", onKeyDown, true);
}
} catch (e) {
alert(e);
}
}
function onKeyDown(e) {
alert("test!");
}
的jsfiddle:
window.attachEvent定义和事件侦听器添加。但它永远不会显示“测试!”警报。
我读了一些关于useCapture标志的信息,可以在其他方法中使用。它在事件“停止”之前捕获窗口上的按键。 Internet Explorer似乎不允许/使用它。这是问题吗?如果是,我该如何解决?
你就能更好地运用,而不是重新发明轮子的jQuery 。它通过名为IE – Codebeat 2012-02-29 22:06:59
的可怕浏览器解决了很多不同的事情。是的,这是一个flex项目中非常小的JavaScript部分,我不想仅为几种方法加载JQuery。 – Ixx 2012-02-29 22:12:30
好的,但我认为这是一个错误的观点,当解决方案已经存在时,您自己会创建一个问题。 – Codebeat 2012-02-29 22:33:35