IEブラウザとDOMブラウザに対応するイベントオブジェクト
1787 ワード
DOMとIE中のイベントオブジェクトは異なるが、彼らの類似性に基づいてブラウザを跨ぐプログラムを出すことができる.IEにおいて、イベントオブジェクトのすべての情報と方法DOM方法にはあるが、実装方法が異なるだけで、この対応関係は、2つのイベントモデル間のマッピングを実現するのに非常に容易である.EventUtilオブジェクトを作成します.
var EventUtil = {
addHandler: function(element, type, handler){ //
if(element.addEventListener){ // DOM2
element.addEventListener(type, handler, false); // false
} else if(element.attachEvent) { // IE, "on" IE8
element.attachEvent("on" + type, handler);
} else { // DOM0 ,
element["on" + type] = handler;
}
},
removeHandler: function(element, type, handler){ //
if(element.removeEventListener){ // DOM2
element.removeEventListener(type, handler, false); // false
} else if(element.detachEvent) { // IE, "on" IE8
element.detachEvent("on" + type, handler);
} else { // DOM0 ,
element["on" + type] = null;
}
},
getEvent: function(event) { //
return event ? event : window.event; // IE event undefined, window.event
},
getTarget: function(event) { //
return event.target || event.srcElement; // IE srcElement
},
preventDefault: function(event) { // , a
if(event.preventDefault) {
event.preventDefault();
} else {
event.returnValue = false;
}
},
// IE9 , ,
stopPropagation: function(event) {
if(event.stopPropagation) {
event.stopPropagation();
} else {
event.cancelBubble = true;
}
}
}