按照《javascript高级程序设计》中的第13章代码实现的。
以下是报错相关的代码:
var eventUtil={
addHandler:function(element,type,handler){
if(element.addEventListener){
element.addEventListener(type,handler,false);
}else if(element.attachEvent){
element.attachEvent("on"+type,handler);
}else{
element["on"+type]=handler;
}
},
getTarget:function(event){
return event.target || event.srcElement;
},
getRelatedTarget:function(event){
if(event.relatedTarget){
return event.relatedTarget;
}else if(event.toELement){
return event.toElement;
}else if(event.fromElement){
return event.fromElement;
}else{
return null;
}
}
};
var handlerMouseout = function(event){
event = eventUtil.getEvent(event);
var target = eventUtil.getTarget(event);
var relatedTarget = eventUtil.getRelatedTarget(event);
console.log("Mouse out from " + target.tagName + " to " + relatedTarget.tagName);
};
var myp = document.getElementById("myp");
eventUtil.addHandler(myp, "mouseout", handlerMouseout);
其中myp是HTML中的一个p元素。
以下是问题:
在其他浏览器中运行无问题,但用IE8运行时会出现2条错误。
一、 window.load以后控制台里显示SCRIPT5:类型不匹配,指向addHandler段中的
else if(element.attachEvent){
element.attachEvent("on"+type,handler);
}
属于针对IE8以下兼容的代码,但想不明白哪里不匹配了。
二、 在对myp进行mouseover和mouseout操作时,其他浏览器控制台会正常返回Mouse out from p to HTML
或Mouse out from p to p
但IE8会返回SCRIPT3:找不到成员并指向getTarget部分
getTarget:function(event){
return event.target || event.srcElement;
}
但IE8不是应该支持srcElement属性吗?
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
光阴似箭催人老,日月如移越少年。