2012-08-28 162 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'); 
});​​​​​​​ 

但它几乎可以肯定将是值得你花时间在许多浏览器在那里的问题,使用现有的库抽象。