我试图在IE 8中运行它,但它不起作用,任何想法?它适用于Firefox,Chrome,Opera ......
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似乎不允许/使用它。那是问题吗?如果是,我该如何解决?
答案 0 :(得分:10)
似乎只有IE9及更高版本才支持在keydown
window
上绑定document
:http://www.quirksmode.org/dom/events/keys.html#t00
相反,将其绑定到IE的function preventBackspace() {
try {
if (window.addEventListener) {
window.addEventListener("keydown", onKeyDown, true);
} else if (document.attachEvent) { // IE
alert(document);
document.attachEvent("onkeydown", onKeyDown);
} else {
document.addEventListener("keydown", onKeyDown, true);
}
} catch (e) {
alert(e);
}
}
:
{{1}}
答案 1 :(得分:4)
请改用document.attachEvent。 :