非インラインスタイルの互換モードを取得
でgetStyle関数(OBJ、ATTR){ // 非線のスタイルを取得し、objが、ATTR値がオブジェクトである IF(obj.currentStyle){ // 非線のスタイルを取得するため、すなわち 戻りobj.currentStyle [ATTR]; } 他{ 戻り getComputedStyleを(OBJ、偽の)ATTR]; // 非IE用 } }
イベントオブジェクトの互換モードを取得します。
document.onclick = 関数(イブ){ VARの E =前夜||ウィンドウ。イベント; console.log(E); }
互換性のある方法をバブリングイベント
関数stopBubble(E){ 場合(e.stopPropagation){ e.stopPropagation()。 } 他{ e.cancelBubble = 真。// 兼容すなわち } }
互換性のある方法のブラウザのデフォルトの動作を妨げます
もし(e.preventDefault){ e.preventDefault()。 } 他{ 窓。イベント .returnValue = 偽 ; // すなわち }
イベントリスナーの互換モードの設定と削除
1 。封装成对象的方式 VAR EventUtil = { はaddHandler:関数(DOM、イベントタイプ、FN){ 場合(DOM.addEventListener){ DOM.addEventListener(EventTypeが、FN、偽)。 } そう であれば(DOM.attachEvent){ DOM.attachEvent(' に' + のEventType、FN) } 他{ DOM [ ' に' = +のEventType] FN } }、 removeHandler:関数(DOM、イベントタイプ、FN){ もし(DOM.removeEventListener){ DOM.removeEventListener(EventTypeが、FN、偽) } そう であれば(DOM.detachEvent){ DOM.detachEvent(' に' + のEventType、FN) } 他{ [DOM ' に' +のEventType] = NULL ; } } } 2 。封装成两个函数的方式 (バックOBJ、INCI)関数addEvent { 場合(obj.addEventListener){ obj.addEventListener(INCI、バック)。 } 他 もし(obj.attachEvent){ (obj.attachEvent " オン" + バックINCI)。 } 他{ [OBJの" オン" = + INCI] バック; } } 関数removeEvent(OBJ、INCI、バック){ 場合(obj.removeEventListener){ obj.removeEventListener(INCI、背中、偽)。 } そう であれば(obj.detachEvent){ obj.detachEvent(" オン" + バックINCI)。 } 他{ [OBJ " オン" = + INCI] ヌル。 } }
互換性のあるイベントのデリゲートメソッド
VaRの OUL = document.querySelector(" UL " ) oul.onclick = 関数(イブ){ VARの E =前夜|| 窓。イベント; VARトン= e.target || e.srcElement; もし(t.getAttribute(" ABC ")== " L " ){ にconsole.log(e.target.innerHTML) } }
この方法は、互換性のあるキーボードイベントであります
VaRの前夜=前夜||ウィンドウ。イベント; VAR KEYC = eve.keyCode || eve.which。
上記の私たちが指摘したいの誤差がある場合、いくつかの学習JS互換モードの過程で出会ったあなたに感謝の要約です。