2012-02-07 10 views
4

SafariとChromeでは動作しますがIEやFFでは動作しない理由はありますか?援助のため、事前にJSがブラウザの幅と高さを検出するにはChrome&Safariでは動作しますがIE9やFF9では動作しません

JS

function load(){ 
    w.value = window.outerWidth; 
    h.value = window.outerHeight; 
} 

HTML

<input name="h" id="h" type="hidden" value="" /> 
<input name="w" id="w" type="hidden" value="" /> 

Click here for the entire page's source code

感謝。

編集:私は何が間違っているかを考え出しました。ロード関数に以下を追加する必要がありました。

var width = document.getElementById("w"); 
var height = document.getElementById("h"); 
width.value = window.outerWidth; 
height.value = window.outerHeight; 
+1

何が問題なのですか?何をやっているのか、何をしていないのか、どんなエラーがスローされているのかなど。 –

答えて

4

Internet Explorerは、ウィンドウサイズを格納するために異なるプロパティを使用します。 Internet ExplorerのclientWidth/Heightには、ウィンドウのサイズ(スクロールバーやメニューなどで使用するピクセル数を減算する)がありますのでお試しください。

function load(){ 
    if(window.outerHeight){ 
     w.value = window.outerWidth; 
     h.value = window.outerHeight; 
    } 
    else { 
     w.value = document.body.clientWidth; 
     h.value = document.body.clientHeight; 
    } 
} 
+0

jQueryの '.width()'/'.height()'を使うこともできます。すでにjQueryを含んでいます。 – Jasper

4

ほとんどすべてのブラウザをサポートするjQueryメソッドを使用してください。

function load(){ 
    w.value = $(window).width(); 
    h.value = $(window).height(); 
} 

参考:width()height()

4

あなたはjQueryのを使用している場合は、それらが適切クロスブラウザを動作しますので、私は.width().height()を使用することをお勧め。 window.outerWidthはIE 8以降ではサポートされていません。 (pxかを含めて、正確な高さ/幅のセットを取得したい場合は、(それはピクセル単位である)単位レス番号を返します.width().height()を使用してhttps://developer.mozilla.org/en/DOM/window.outerWidth

:ここ

は、いくつかの良い window.outerWidthためのドキュメントです em.css('width').css('height')を使用できます。

関連する問題