簡體   English   中英

為什么keydown監聽器在IE中不起作用

[英]Why keydown listener doesn't work in IE

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

http://jsfiddle.net/ubfBq/

定義了window.attachEvent並添加了事件偵聽器。 但它從未顯示出“測試!” 警報。

我讀了一些關於useCapture標志的東西,可以在其他方法中使用。 它會在事件“關閉”之前捕獲窗口上的按鍵。 Internet Explorer似乎不允許/使用它。 那是問題嗎? 如果是,我該如何解決?

似乎只有IE9及更高版本支持在window上綁定keydownhttpkeydown

相反,將它綁定到IE的document

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);
    }
}

請改用document.attachEvent。 :]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM