いくつかの一般的な問題とソリューションの互換性のJavaScript

  一般的に互換性の問題がある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を; 
}

 

おすすめ

転載: www.cnblogs.com/mengshou/p/11427642.html