Javascriptブラウザの違いと互換性の方法

1691 ワード

javascriptの様々な互換性は、ブラウザの違いを解決するために、その違いを知ることで、問題を早く解決し、コードの使用品質を向上させ、より優秀なjavascriptコードを作成することができます.
1.window.イベント
現在の時間オブジェクトを表します.IEはこのオブジェクトがあります.FFはありません.
2.イベントソースの取得
  • IEがsrcementでイベントソース
  • を取得する.
  • FFは、イベントソース
  • をtargetで取得する.
    以上の二つの互換性は通常このように書きます.
    var evt = e||event;
    
    var el = evt.srcTarget || evt.srcElement;
    
    3.イベントの追加、削除
    4.ラベルのカスタム属性を取得する
    IE:div 1.valueまたはdiv 1['value']
    FF:利用できるdiv 1.get Attribute("value")
    5.document.getElemntByName()とdocument.all[name]
  • IEは
  • ではありません.
  • FF
  • 6.input.typeの属性
    7.IEはinnerText、outerHTMLをサポートする.
    FF:textContent対応
    8.ウィンドウの位置
  • IE、chrome、safari:window.screenLeftとwindow.screenTop
  • を使うことを支持します.
  • IE 8以上、chrome、safari、firefox:window.screenXとwindow.screenY
  • の使用をサポートします.
    互換コードは以下のコードを使用できます.
    var leftX = typeof window.screenLeft == 'number' ? window.screenLeft : window.screenX;
    
    ver topY = typeof window.screenTop == 'number' ? window.screenTop : window.screenY;
    
    9.ウィンドウのサイズ
  • firefox、chrome、IE 9とsafari:window.inner Widthとwindow.inner Height
  • IEシリーズ:Dcument.body.clientWidthとdocument.body.clientHeight
  • はIE 6ではありません.document.document.client Widthとdocument.documentElement.clientHeight
  • 互換コードはこのように書いてもいいです.
     var width = window.innerWidth;
    
     var height = window.innerHeight;
    
     if(typeof width != 'number'){
    
     if(document.compatMode == 'CSS1Compat'){
    
     width = document.documentElement.clientWidth;
    
     height = document.docuementElement.clientHeight;
    
    }else{
    
    width = document.body.clientWidth;
    
    height = document.body.clientHeight;
    
    }