43

我想使用 javascript 为文档注册按键事件。

我用过:

document.attachEvent("onkeydown", my_onkeydown_handler);

它适用于 IE,但不适用于 Firefox 和 Chrome。

我也试过:

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

但它仍然不适用于 Firefox 和 Chrome。

有没有解决方案,我错过了什么?

4

3 回答 3

79

您正在寻找:

编辑:

Javascript:

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

演示: JSFIDDLE

于 2012-08-28T05:45:59.967 回答
10

您可能正在寻找:

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

但是几乎可以肯定的是,使用现有的库来抽象出许多浏览器的问题是值得的。

于 2012-08-28T05:42:12.730 回答
-4

请通过以下链接了解详细说明。

https://developer.mozilla.org/en-US/docs/DOM/element.addEventListener?redirectlocale=en-US&redirectslug=DOM%3Aelement.addEventListener

http://www.reloco.com.ar/mozilla/compat.html

简而言之,将处理程序写为

function myFunction(e)
{
    ///For IE
    if(!e)
        e=window.event;

    // use e as event in rest of code.
}
于 2012-08-28T05:45:40.867 回答