一般的に互換性の問題があるJS素敵なものには、以下では、それらの使用はJSファイルでそれらを置くことができるときに私は、互換性のあるいくつかの一般的に使用される治療法をまとめ、あなたが直接導入されたとき、それがより便利になります使用する必要があります。
非インラインスタイルにまず、アクセス
機能でgetStyle(ELE、ATTR){ 場合(ele.currentStyle){ 戻りele.currentStyleを[ATTR]。 } 他{ 返す(ELE getComputedStyleを偽)ATTR]。 } }
[注]:ここではブラケットの構文を使用する変数としてARRT。
イベントオブジェクトの第二に、買収
// イベントオブジェクト互換取得 機能GETEVENT(ELE){ VARの E = || ELE window.event; }
第三に、イベントバブリング
// イベントバブリング互換 機能stopBubble(E){ IF (e.stopPropagation){ e.stopPropagation(); } 他{ e.cancelBubble = trueに; } }
第四に、ブラウザのデフォルトの動作を防ぐために
// デフォルトイベント互換停止 機能防止(イブ){ VARの E = ||イブwindow.event; IF (e.preventDefault){ e.preventDefault(); } 他{ e.event.returnValue = falseに; } }
ヒント:非常にシンプルな言い回しがコードプラス偽リターンの最後の行でもあり、私たちがしなければならないことに注意してコードが実行されるの後ろに使用された場合、このコードは、特定のイベントの最後の行に書かれた、またはされていませんに注意を払うこと。
第五に、イベントが結合してイベントを削除します
1.バインドリスニングスタイルのイベント
// 监听式绑定 関数addEvent(ELE、タイプ、CB){ 場合(ele.addEventListener){ ele.addEventListener(タイプ、CB)。 } そう であれば(ele.attachEvent){ ele.attachEvent( + "オン" タイプ、CB)。 } 他{ [ELE = +型の"オン"] CB。 } }
2.イベントのリッスンタイプを削除します。
// 删除绑定 機能romoveEvent(ELE、タイプ、CB){ 場合(ele.removeEventListener){ ele.romoveEventListener(タイプ、CB)。 } そう であれば(ele.detachEvent){ ele.detachEvent( + "オン" タイプ、CB)。 } 他{ [ELEの +型の"オン"] = NULL ; } }
第六に、キーボードイベント
// キーボード互換検出 機能KEYC(イブ){ VAR E = ||イブwindow.event; VAR KEYC = e.keyCode || e.which、 戻りKEYCを; }