javascript document.com mpatMode属性
2713 ワード
ドキュメントモードは開発にはあまり使われていないようですが、最も一般的なのは、ページの幅が高い場合、たとえばドキュメントの幅が高く、可視領域の幅が高い場合です.
IEの箱モデルへのレンダリングはStanddards ModeとQuirks Modeでは大きな違いがあります.Standdards Modeでは箱モデルの解釈は他の標準ブラウザと同じですが、Quirks Modeモードでは大きな違いがあります.したがって、互換性を考慮するために、現在のドキュメントのレンダリングを取得する必要があります. Dcument.com mpatModeはちょうど役に立ちます.バックの可能性が二つあります.BackComputとCSS 1 Comppat. BackComput:標準互換モードがオフになります.ブラウザの顧客エリアの幅はdocument.body.client Widthです.CSS 1 Comput:標準互換モードがオープンしました.ブラウザの顧客エリアの幅はdocument.documentElement.client Widthです. 正確にウェブページの顧客エリアの幅の高さ、スクロールバーの幅の高さ、スクロールバーのLeftとTopを取得するコードを書きました.
コードは以下の通りです
IEの箱モデルへのレンダリングはStanddards ModeとQuirks Modeでは大きな違いがあります.Standdards Modeでは箱モデルの解釈は他の標準ブラウザと同じですが、Quirks Modeモードでは大きな違いがあります.したがって、互換性を考慮するために、現在のドキュメントのレンダリングを取得する必要があります. Dcument.com mpatModeはちょうど役に立ちます.バックの可能性が二つあります.BackComputとCSS 1 Comppat. BackComput:標準互換モードがオフになります.ブラウザの顧客エリアの幅はdocument.body.client Widthです.CSS 1 Comput:標準互換モードがオープンしました.ブラウザの顧客エリアの幅はdocument.documentElement.client Widthです. 正確にウェブページの顧客エリアの幅の高さ、スクロールバーの幅の高さ、スクロールバーのLeftとTopを取得するコードを書きました.
コードは以下の通りです
if (document.compatMode == "BackCompat") {
cWidth = document.body.clientWidth;
cHeight = document.body.clientHeight;
sWidth = document.body.scrollWidth;
sHeight = document.body.scrollHeight;
sLeft = document.body.scrollLeft;
sTop = document.body.scrollTop;
}
else { //document.compatMode == "CSS1Compat"
cWidth = document.documentElement.clientWidth;
cHeight = document.documentElement.clientHeight;
sWidth = document.documentElement.scrollWidth;
sHeight = document.documentElement.scrollHeight;
sLeft = document.documentElement.scrollLeft == 0 ? document.body.scrollLeft : document.documentElement.scrollLeft;
sTop = document.documentElement.scrollTop == 0 ? document.body.scrollTop : document.documentElement.scrollTop;
}
alert(sTop) // 0;
setTimeout(function(){alert(sTop)},1000) // chrome IE9 0;
setTimeout(function(){alert(document.body.scrollTop)},2000) // Chrom、IE9 ;