js中event,event.srcElement,event.target在IE和firefox下的兼容性

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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章