2017 के लिए अपडेट
मेरा मूल उत्तर 2009 में लिखा गया था। जबकि यह अभी भी काम करता है, मैं इसे 2017 के लिए अपडेट करना चाहूंगा। ब्राउज़र्स अभी भी अलग तरह से व्यवहार कर सकते हैं। मुझे क्रॉस-ब्राउज़र स्थिरता बनाए रखने के लिए jQuery टीम पर बहुत अच्छा काम करने का भरोसा है। हालांकि, पूरे पुस्तकालय को शामिल करना आवश्यक नहीं है। JQuery स्रोत में संबंधित भाग आयाम 37.Js की लाइन 37 पर पाया जाता है । यहाँ इसे स्टैंडअलोन के लिए निकाला और संशोधित किया गया है:
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() );
मूल उत्तर
चूंकि सभी ब्राउज़र अलग-अलग व्यवहार करते हैं, इसलिए आपको पहले मूल्यों के लिए परीक्षण करना होगा, और उसके बाद सही का उपयोग करना होगा। यहाँ एक फ़ंक्शन है जो आपके लिए ऐसा करता है:
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;
}
}
और इसी तरह ऊंचाई के लिए:
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;
}
}
अपनी स्क्रिप्ट में इन दोनों का उपयोग करके कॉल करें getWidth()या getHeight()। यदि ब्राउज़र के किसी भी मूल गुण को परिभाषित नहीं किया गया है, तो यह वापस आ जाएगा undefined।