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を取得するコードを書きました. 
コードは以下の通りです
 
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 ;