最明显的是下面这行的简单拼写错误:
var key = e.keycode ? e.keycode : e.which;
应该是
keyCode
而不是
keycode
.
除此之外,在
addEventHandler
功能。我建议如下:
function addEventHandler(node,type,fn){
if (typeof node.addEventListener !== "undefined"){
node.addEventListener( type, fn,false );
} else if (typeof node.attachEvent !== "undefined") {
node.attachEvent( "on" + type, fn );
}
}
有两件事:首先,最好检查一下
attachEvent
直接而不是从
window.event
. 事实上,
窗口事件
存在于Safari和Chrome中,但不存在(我认为)
附加事件
因此,不可靠的推理会阻止代码工作。
其次,最好检查DOM标准
addEventListener
首先,在它存在的地方使用它,而不是
附加事件
. 例如,歌剧既有,也只有
添加事件侦听器
是标准化的。