1

MozillaFirefoxから現在のページのドキュメント幅を取得する際に問題が発生しました。残りのブラウザはドキュメントの正しい幅を報告しますが、Firefoxは小さい方の幅を報告します(例:画面解像度が1920x1080 IEの場合、ChromeとSafariは1920を報告し、Firefoxは1903を報告します)。

$(document).ready(function(){...});でドキュメント幅を使用します。div要素を再配置します。面白いことに、この関数内でalert()を使用した後、ドキュメントサイズは他のブラウザよりも小さいですが、要素は正しく再配置されます。

4

1 に答える 1

1

Salmanがコメントですでに述べたように、この違いはスクロールバーに起因します。ブラウザによっては(そしておそらくクァークズモードが有効になっているかどうかによっても)、スクロールバーはドキュメントの「外側」(この場合、その幅はドキュメントの幅に追加されません)または<html>要素の一部(その場合は幅はドキュメントの幅に追加されます)。したがってdocument.documentElement.offsetWidth、一貫性のない結果が返されます-スクロールバーがある場合とない場合があります。document.body.offsetWidth一方、ブラウザ間で一貫しているようです-スクロールバーの幅は含まれていません。

内容に関係なく、学習したいのがビューポートの幅である場合はwindow.innerWidth、より適切な選択になる可能性があります。Firefox、Chrome、MSIE 9.0でテストしました。これらすべてで、最大化されたウィンドウの全画面幅が返されます。

于 2012-04-04T09:50:25.427 に答える