2017 Güncellemesi
Orijinal cevabım 2009'da yazıldı. Hala çalışıyor olsa da, 2017 için güncellemek istiyorum. Tarayıcılar yine de farklı davranabilir. Tarayıcılar arası tutarlılığı sağlamada harika bir iş çıkarması için jQuery ekibine güveniyorum. Ancak, tüm kütüphaneyi dahil etmek gerekli değildir. JQuery kaynağında, ilgili kısım, dimension.js'nin 37. satırında bulunur . Burada bağımsız çalışmak için çıkarılır ve değiştirilir:
function getWidth() {
return Math.max(
document.body.scrollWidth,
document.documentElement.scrollWidth,
document.body.offsetWidth,
document.documentElement.offsetWidth,
document.documentElement.clientWidth
);
}
function getHeight() {
return Math.max(
document.body.scrollHeight,
document.documentElement.scrollHeight,
document.body.offsetHeight,
document.documentElement.offsetHeight,
document.documentElement.clientHeight
);
}
console.log('Width: ' + getWidth() );
console.log('Height: ' + getHeight() );
Orijinal Yanıt
Tüm tarayıcılar farklı davrandığından, önce değerleri test etmeniz ve ardından doğru olanı kullanmanız gerekir. İşte bunu sizin için yapan bir işlev:
function getWidth() {
if (self.innerWidth) {
return self.innerWidth;
}
if (document.documentElement && document.documentElement.clientWidth) {
return document.documentElement.clientWidth;
}
if (document.body) {
return document.body.clientWidth;
}
}
ve benzer şekilde yükseklik için:
function getHeight() {
if (self.innerHeight) {
return self.innerHeight;
}
if (document.documentElement && document.documentElement.clientHeight) {
return document.documentElement.clientHeight;
}
if (document.body) {
return document.body.clientHeight;
}
}
Komut dosyalarınızda getWidth()
veya ikisini birden kullanarak çağırın getHeight()
. Tarayıcının yerel özelliklerinden hiçbiri tanımlanmazsa geri döner undefined
.