我想使用javascript注册文档的按键事件。
我用过:
document.attachEvent("onkeydown", my_onkeydown_handler);
它适用于IE, 但不适用于Firefox和Chrome。
我也尝试过:
document.addEventListener("onkeydown", my_onkeydown_handler, true);
// (with false value also)
但它仍无法与Firefox和Chrome一起使用。
有解决方案吗,我错过了什么吗?
答案 0 :(得分:66)
您正在寻找:
修改强>
使用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.");
}
}
DEMO:JSFIDDLE
答案 1 :(得分:7)
您可能正在寻找:
document.body.addEventListener('keydown', function (e) {
alert('hello world');
});
但是,几乎可以肯定的是,您可以花时间使用现有的库来抽象出许多浏览器的问题。
答案 2 :(得分:2)
addEventListener()
的事件名称为keydown
,而不是onkeydown
。
此外,您应该将事件处理程序附加到触发器元素,而不是document
。
答案 3 :(得分:-4)
请仔细阅读以下链接。
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.
}