要約でのJSの互換性の問題

JSは良いニュースです、もちろん、Microsoftは今、彼はフロントエンドのために、IE、打ち上げエッジブラウザを放棄しようとしていることが多いIEブラウザの互換性の問題で見つかった、プロセスで使用します。

次のここで整理いくつかの一般的な互換性の問題は、不測の事態を避けるために、ソリューションを添付してしかし、まだIEユーザーの割合は、過小評価することはできません。

非線スタイルの1買収

  IEブラウザ:element.currentstyle + ATTR

  通常のブラウザ(クローム、FF):getComputedStyle(要素、偽)+ ATTR

これらの2つのタイプは、以下のブラウザIE、通常と呼ばれています

(すべてのブラウザと互換性のある)の呼び出しを容易にするために、次のパッケージ機能

関数でgetStyle(ELE、ATTR){
         VARの A = "" ;
        もし(ele.currentStyle){                    // IE 
            A = ele.currentStyle [ATTR]。   
        } { = getComputedStyle(ELE )ATTR]。  // 正常 
        }

 2. GETイベントオブジェクト

     IE:window.event

  ノーマル:質量参加イベントに

obox.onclick = 関数(イブ){    
         VARの E =前夜|| window.event; 
        console.log(E)
    }

 3.停止イベントバブリング

 イベントバブリング:イベントは要素がトリガされると、それは最初に同じイベントにすべての親をトリガー回し、その後、それに対応するイベントがトリガされます。親に同じイベントではありません、アップトリガーを続けます
そのonmouseenterに注意し、イベントバブリングをサポートしていませonmouseleave
   IE:event.cancelBubble =真
  通常:するevent.stopPropagation()
関数stopBubble(E){
             場合(e.stopPropagation){ 
                e.stopPropagation()。    //正常
             } { 
                e.cancelBubble = // IE
             } 
        }

4.イベントの委任

イベントのデリゲート:同じイベントの複数の同一の要素は、ページ上の既存の共通の親要素に追加、イベントソースで、イベントバブルを使用し、実際にクリックされた要素を見つけます

  IE:event.srcElement
  ノーマル:event.target
関数タール(T){
     VAR T = e.target || e.srcElement;}

5.イベント結合方法を追加

イベントは、2つの方法で結合:割り当てタイプとスタイルを聴きます

(1)割り当て式:(DOM 0レベルのイベントバインディング)
 それは、より一般的に、互換性の問題を使用していません
  例:obox.onclick =関数(){}
(DOMレベル2イベントバインディング):(2)式を監視 
  IE:element.attachEvent( "上" +タイプ、CB)
  正常:element.addEventListener(タイプ、CB)
関数addEvent(ELE、タイプ、CB){
         IF (ele.addEventListener){ 
            ele.addEventListener(タイプ、CB)   //リスナー式:ノーマル
         }  IF (ele.attachEvent){ 
            ele.attachEvent( +タイプ"ON"、 CB)     //リスナー式:のIE
         } { 
            ELE [ +型"ON"] = CB;         式//割り当て
         } 
    }

6.イベント結合方法を削除

また、対応するイベント結合方法を削除

(1)結合割当タイプのイベントを削除します
  例:obox.onclick = NULL
(2)リスナーイベントバインディングタイプを削除します。
  IE:element.detachEvent( "上" +タイプ、CB)
  正常:element.removeEventListener(タイプ、CB)
関数removeEvent(ELEは、タイプ、Cbの){
         IF (ele.removeEventListener){ 
            ele.removeEventListenerは(タイプ、Cbの)   //入力リッスン:正常削除を
         }  IF (ele.detachEvent){ 
            ele.detachEvent( "ON" +タイプ、CB)   //リスナー式:IE欠失
         } { 
            ELE [ +型"ON"] = NULL ;        //は割り当てタイプを削除
         } 
    }

7.キーキーボードイベントを取得

IE:event.which

ノーマル:event.keycode

機能コード(イブ){
 VARの E = || window.eventイブ;          //第1の取得イベント
  のvarコード= e.keyCode || e.which;    //キー再取得
 }

 8.デフォルトのイベントを防ぎます

 IE:event.returnValue = falseを
 通常:event.preventDefault()
 関数stopDefault(E){
         場合(e.preventDefault){ 
            e.preventDefault()          //正常
         } { 
            e.returnValue = // IE
         } 
    }

新しい出会いの互換性の問題が議論を歓迎する、更新していきます

おすすめ

転載: www.cnblogs.com/mutuo/p/11487801.html