Javascript绑定键向上/向下事件
如何将函数绑定到键向下/向上事件 它可以绑定到整个文档,也可以绑定到单个元素,在这种情况下两者都可以 这必须没有任何JavaScript库。我只关心最新的Firefox。特别是canvas元素 我试过:(FF 3.6.9 Windows 7)Javascript绑定键向上/向下事件,javascript,javascript-events,Javascript,Javascript Events,如何将函数绑定到键向下/向上事件 它可以绑定到整个文档,也可以绑定到单个元素,在这种情况下两者都可以 这必须没有任何JavaScript库。我只关心最新的Firefox。特别是canvas元素 我试过:(FF 3.6.9 Windows 7) 试验 var el=document.getElementById(“游戏”); el.onkeydown=功能(evt){ evt=evt | | window.event; 警报(“按下键:+evt.keyCode”); }; el.onkeyup=
试验
var el=document.getElementById(“游戏”);
el.onkeydown=功能(evt){
evt=evt | | window.event;
警报(“按下键:+evt.keyCode”);
};
el.onkeyup=功能(evt){
evt=evt | | window.event;
警报(“键控:+evt.keyCode”);
};
关键事件仅对可能接收焦点的文档和元素触发。因此,要处理
元素上的关键事件,您需要通过添加tabindex
属性(例如
)或简单地处理整个文档的关键事件来允许它接收焦点,这可能不是您想要的(例如,如果页面上有多个要处理关键事件的元素)
关于如何附加事件处理程序,最简单的方法如下:
var el = document.getElementById("your_element_id");
el.onkeydown = function(evt) {
evt = evt || window.event;
alert("keydown: " + evt.keyCode);
};
el.onkeyup = function(evt) {
evt = evt || window.event;
alert("keyup: " + evt.keyCode);
};
如果您可能需要多个侦听器,您可以在大多数浏览器中使用
addEventListener
,或者在IE中使用attachEvent
,这是因为
元素默认情况下无法接收焦点。您有两种选择:您可以向画布标记添加tabindex
属性以允许它接收焦点,或者您可以附加改为使用文档
的关键事件处理程序。您能告诉我上面代码中的evt
是什么吗?这是否仅仅意味着如果触发其他类型的事件,可以触发
var el = document.getElementById("your_element_id");
el.onkeydown = function(evt) {
evt = evt || window.event;
alert("keydown: " + evt.keyCode);
};
el.onkeyup = function(evt) {
evt = evt || window.event;
alert("keyup: " + evt.keyCode);
};
if (typeof el.addEventListener != "undefined") {
el.addEventListener("keydown", function(evt) {
alert("keydown: " + evt.keyCode);
}, false);
} else if (typeof el.attachEvent != "undefined") {
el.attachEvent("onkeydown", function(evt) {
alert("keydown: " + evt.keyCode);
});
}