//非延遲載入的函數,每次呼叫都會進行條件判斷
function removeHandler(target,eventType,handler) {
if(target.removeEventListener) {
target.removeEventListener(eventType,handler,false);
}else {
"on" eventType,handler);
}
}
//延遲載入的函數,第一次呼叫後,會覆蓋原來的老函數,以後再呼叫的是新函數,不會再進行條件的判斷,提升效率
function addHandler(target,eventType,handler) {
if(target.addEventListener) {
addHandler = function(target,eventType,handler){
target.addHandler = function(target,eventType,handler){
target.addHandler >ener (eventType,handler,false);
}
}else{
addHandler = function(target,eventType,handler){
target.attachEvent("on" eventType,handler);
}
}
addHandler(target,eventType,handler);
}
//條件預先載入
//條件預先載入確保所有函數呼叫時間相同。其代價是在腳本載入時進行檢測。預先載入適用於一個函數馬上就會被用到,而且在整個頁面生命週期中經常使用的場合。
var addEventHandler = document.body.addEventListener ? function(target,eventType,handler) {
target.addEventListener(eventType,handler,false);
} : function(target,eventType,handler ) {
target.attachEvent("on" eventType,handler);
}