1、window.event对象
IE:有window.event对象
firefox:没有window.event对象。可以通过函数的参数传递event对象。例 如:onmousedown=function(event) 解决办法:var e=window.event||event;
2、event.srcElement和event.target
IE:有srcElement属性,没有target属性。
firefox:有target属性,没有srcElement属性。
event.srcElement和event.target的作用是一样的,获取事件作用的元素。
IE下的event.srcElement=firefox下的event.target。
解决办法:用三元运算符:用obj(obj=event.srcElement ? event.srcElement:event.target;) 来代替IE下的event.srcElement和firefox下的event.target。也可以用if条件语句来代替。
例子一:用if语句代替
var targ if(!e){ var e=window.event||event;//firefox没有window.event对象 if(e.target){ targ=e.target; }else if(e.srcElement){ targ=e.srcElement; }; }; if(targ.nodeType==3){ //nodeType==3代表node.text_node targ=targ.parentNode };//defeat Safari bug var tname; tname=targ.tagName;//返回备选元素的标签名 alert("you clikced on a " + tname + " element");
例子二:用三元运算符代替
var targ if(!e){ var e=window.event||event;//firefox没有window.event对象 var obj=e.srcElement ? e.srcElement:e.target; targ=obj; }; if(targ.nodeType==3){ targ=targ.parentNode };//defeat Safari bug var tname; tname=targ.tagName; alert("you clikced on a " + tname + " element");