我試圖在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