關於對跨瀏覽器實現的事件處理程序

今天上網看了許多關於js的dom事件的內容。其中呢,對於跨瀏覽器實現的事件處理程序的封裝方法很感興趣。主要呢就是對於ie和其他主流的瀏覽器的差別。

var eventUtil = {  
    //添加dom事件處理程序  
    //添加的屬性  
    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;  
        }  
    },  
    //刪除dom事件處理程序  
    removeHandler:function(element,type,handler){   
        if(element.removerEventListener){  
            element.removerEventListener(type,handler,false);  
        }else if (element.detachEvent) {  
            element.detachEvent('on'+type,handler);  
        }else{  
            element['on'+type]=null;  
        }  
    }  
} 

 關於其中的element['on'+type]是因爲element.後無法與字符串連接。而element[]等價於element.

關於是否加on,是因爲ie的事件處理程序與別的瀏覽器不同導致。事件的type有的是dom2級中是click而由於ie8之前不兼容dom2級事件處理,則需要用type爲onclick的ie時間處理程序。


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