【发布时间】:2016-03-22 17:03:19
【问题描述】:
我注意到 Javascript 代码似乎被编写为以完全不同的方式读取击键,我猜这是为了支持不同的浏览器。例如,下面是网页中的一个代码块:
if (document.addEventListener)
{
document.addEventListener("keydown",keydown,false);
document.addEventListener("keypress",keypress,false);
document.addEventListener("keyup",keyup,false);
document.addEventListener("textInput",textinput,false);
}
else if (document.attachEvent)
{
document.attachEvent("onkeydown", keydown);
document.attachEvent("onkeypress", keypress);
document.attachEvent("onkeyup", keyup);
document.attachEvent("ontextInput", textinput);
}
else
{
document.onkeydown= keydown;
document.onkeypress= keypress;
document.onkeyup= keyup;
document.ontextinput= textinput; // probably doesn't work
}
从这段代码来看,不同的浏览器似乎有完全不同的击键处理机制。以上哪些机制对应于哪些浏览器?
【问题讨论】:
-
阅读 MDN:addEventListener
-
您在代码中列出的事件根本不一样,它们有不同的用途:stackoverflow.com/questions/3396754/…
-
quirksmode.org/js/introevents.html。基本上,现在所有非过时的浏览器都支持标准的
addEventListener。
标签: javascript compatibility keystroke