2012-08-28 293 views
29

我想爲使用javascript的文檔註冊按鍵事件。如何註冊document.onkeypress事件

我用:

document.attachEvent("onkeydown", my_onkeydown_handler); 

它正常工作與IE瀏覽器, 但與Firefox和Chrome。

我也試過:

document.addEventListener("onkeydown", my_onkeydown_handler, true); 
// (with false value also) 

但它仍然無法與Firefox和Chrome的工作。

有沒有解決方案,我錯過了什麼?

+0

你能表現出一定的代碼? – Phil

+0

[可能的答案](http://stackoverflow.com/questions/3763080/javascript-add-events-cross-browser-function-implementation-use-attachevent-add) – SuperSaiyan

回答

54

您正在尋找:

編輯:

Java類CRIPT:

document.addEventListener("keydown", keyDownTextField, false); 

function keyDownTextField(e) { 
var keyCode = e.keyCode; 
    if(keyCode==13) { 
    alert("You hit the enter key."); 
    } else { 
    alert("Oh no you didn't."); 
    } 
} 

DEMO:JSFIDDLE

+1

我想添加事件到文檔本身 –

+0

已編輯代碼.. @ NileshPethani –

2

addEventListener()的事件名稱是​​,而不是onkeydown

另外,您應該將事件處理程序附加到觸發器元素,而不是document

7

您可能正在尋找:

document.body.addEventListener('keydown', function (e) { 
    alert('hello world'); 
});​​​​​​​ 

但它幾乎可以肯定將是值得你花時間在許多瀏覽器在那裏的問題,使用現有的庫抽象。