Javascriptブラウザの違いと互換性の方法
1691 ワード
javascriptの様々な互換性は、ブラウザの違いを解決するために、その違いを知ることで、問題を早く解決し、コードの使用品質を向上させ、より優秀なjavascriptコードを作成することができます.
1.window.イベント
現在の時間オブジェクトを表します.IEはこのオブジェクトがあります.FFはありません.
2.イベントソースの取得 IEがsrcementでイベントソース を取得する. FFは、イベントソース をtargetで取得する.
以上の二つの互換性は通常このように書きます.
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 の使用をサポートします.
互換コードは以下のコードを使用できます. 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 互換コードはこのように書いてもいいです.
1.window.イベント
現在の時間オブジェクトを表します.IEはこのオブジェクトがあります.FFはありません.
2.イベントソースの取得
以上の二つの互換性は通常このように書きます.
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]
7.IEはinnerText、outerHTMLをサポートする.
FF:textContent対応
8.ウィンドウの位置
互換コードは以下のコードを使用できます.
var leftX = typeof window.screenLeft == 'number' ? window.screenLeft : window.screenX;
ver topY = typeof window.screenTop == 'number' ? window.screenTop : window.screenY;
9.ウィンドウのサイズ 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;
}