Zbadałem obiekt window w Firebug. window.innerWidth i window.outerWidth są zarówno 1230.

Jaka jest różnica między tymi dwoma wartościami?

37
John Hoffman 22 sierpień 2012, 07:54

2 odpowiedzi

Najlepsza odpowiedź

Z sieć deweloperski Mozilla:

window.outerwidth

Okno.uterwidth dostaje szerokość zewnętrznej części okna przeglądarki. Reprezentuje szerokość całego okna przeglądarki, w tym paska boczna (jeśli zostanie rozszerzona), chromowane okno i zmiana rozmiaru okien.

I

winding.innerwidth

Szerokość (w pikselach) widoczności okna przeglądarki, w tym, jeśli jest renderowane, pionowy paski przewijania.

Jest to pozornie jak działają. Jednak strona testowa pokazuje jednak, że są takie same bez względu na zmianę ich w Firefoksie 14.0.1 na Ubuntu 12.04. W chromu zwracają liczby, które są różne piksele różne. Robiąc trochę martwych rozliczeń, wydaje się, że okno Chrome na tej konkretnej aplikacji wynosi około 4 pikseli po lewej stronie i 4 pikseli po prawej stronie i że różnica ta jest prawidłowo odebrana w tej przeglądarce.

Kod używany do strony testowej:

<!DOCTYPE html>
<html lang="en">
<head>
    <title>12066093</title>
    <meta charset="utf-8">
</head>
<body>
<div style="width:2000px; height: 2000px;">hi</div>
<script type="text/javascript">
    alert("window.innerWidth: " + window.innerWidth + "\nwindow.outerWidth: " + window.outerWidth);
</script>
</body>
</html>
23
chucksmash 22 sierpień 2012, 04:08

Sprawdź referencje Mozilla dla window.innerwidth i Window.outerwidth. Jeśli twój system operacyjny / Menedżer okien ma je, window.outerwidth zawiera granice okienne, zmiany rozmiaru i paski boczne.

Spróbuj otworzyć zakładki lub pasek boczny historii, a następnie spróbuj ponownie w Firebug.

2
Snowball 22 sierpień 2012, 04:01