我已将此代码写入HTML页面的HEAD标记内。它在FF,Chrome和Safaria中运行良好,但在IE7中没有。我想知道如何解决它。
<script type="text/javascript">
if ( window.addEventListener ) {
window.addEventListener("keydown", function(e) {
alert(e.keyCode);
}, true);
}
</script>
提前致谢。
答案 0 :(得分:2)
IE中没有window.addEventListener,您需要使用attachEvent。有关事件here的良好文档,或者您可以切换到使用抽象浏览器差异的库。
答案 1 :(得分:2)
Microsoft已经实现了自己的这种方式attachEvent
。您可以在quirksmode.org上了解更多相关信息:http://www.quirksmode.org/js/events_advanced.html
答案 2 :(得分:2)
你搞砸了:你正在使用event capturing(将true
作为addEventListener
的最后一个参数传递。 IE在任何版本中都有 no 等等,包括IE8模式下的IE8。
是否有理由必须使用事件捕获而不是在此处冒泡? IOW,将false
作为最后一个参数传递给我?然后,您可以(有点)移植它以使用IE的attachEvent
专有方法,或使用库(正如其他人建议并添加链接)。
答案 3 :(得分:1)
尝试:
window.attachEvent
更全面:
//set page event handlers
if (window.attachEvent) {
//IE and Opera
window.attachEvent("keydown", "");
} else if (window.addEventListener) {
// IE 6
window.addEventListener("keydown", "");
} else {
//FireFox
document.addEventListener("keydown", "");
}