JSでの一般的な互換性の問題

ウィンドウオブジェクトのプロパティ:

可視領域の幅: window.innerWidth || document.documentElement.clientWidth(互換IE)|| document.body.clientWidth

可視領域の幅:window.innerHeight || || document.documentElement.clientHeight document.body.clientHeight

ページスクロールバーの上部からの距離: document.documentElement.scrollTop || document.body.scrollTop

:ページのスクロールバーの左側からの距離 document.docimentElement.scrollLeft ||左document.body.scroll

 

イベントの互換性:VAR =イブイベントwindow.event ||

キーボード・イベント)VAR KEYC = eve.keyCode(IE)     || eve.which

 

機能パッケージをバブリングからイベントを防ぎます:   

機能デル(){

           VaRのE =イベント|| window.event;

           (e.stopPropagation){//もしバブリング動作を防止するための一般的な方法

               e.stopPropagation();

           }エルス{// IEブラウザ

               event.cancelBubble =はtrue。

           }

 

機能パッケージのデフォルトの動作を妨げます。 

関数stopDefault(イベント){

     VaRのE =イベント|| window.event;

     IF(e.preventDefault){

         e.preventDefault(); // 標準ブラウザ

     }他{

         e.returnValue =偽; // IEのブラウザ

     }

}

 

DOM2 レベルのイベントパッケージ:  

関数addEvent(OBJ、INCI、バック){

         IF(obj.addEventListener){

             obj.addEventListener(INCI、バック)。

         }そうであれば(obj.attachEvent){

             obj.attachEvent(INCI + "上"、裏)。

         }他{// 上記の結合をサポートしていませんDOM1のレベルのイベントを

             OBJ [ "オン" + INCI] =バック;

         }

     }

イベント・リスナーを削除します。
関数にremoveEventListener(OBJ、イベント、FN、BOO){
        IF(にremoveEventListener){
            obj.removeEventListener(イベント、FN、BOO)
        }そうであれば(detachEvent){
            obj.detachEvent(+イベント 'オン'、FN);
        }他{
            OBJ = nullの[+イベント「オン」]; //ここに注意除去中に直接空白のように、その
        }
    }

 

イベントソースのターゲット文言と互換性の獲得

        VAR E =前夜|| window.event;

        VARターゲット= e.target || e.srcElement;

 

非ラインスタイルのGET:

     Nodeオブジェクト .currentStyle [ プロパティ]のIEのブラウザ

     getComputedStyle(ノードオブジェクト)。プロパティ非IEのブラウザ。プロパティのプロパティ値を取得します。

 

byClassNameによって互換性のあるページ要素を取得します。
    //分析:あなたは直接アクセスをサポートしている場合、サポートされていない場合は、byTagName買収により、クラス名の必要な要素を見つけるために、すべてのラベルを横断する必要があります
    関数byClassName(OBJ、クラス名){
        IF(obj.getElementsByClassName){
            obj.getElementsByClassName(クラス名)を返します。
        }
        他の{
            = [] ARRました。
            VAR eles = obj.getElementsByTagName( '*');
            {(; iはLEN <I ++はVAR I = 0、LEN = eles.length)のために
                IF(eles [I] .className ==クラス名){
                    arr.push(彼ら[I])。
                }
            }
            ARRを返します。
        }
    }

 

おすすめ

転載: www.cnblogs.com/wshj120828/p/11571602.html