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");