jquery $ (विंडो) .height () दस्तावेज़ की ऊँचाई वापस कर रहा है


104

मुझे यकीन है कि एक साधारण त्रुटि है जो मैं बना रहा हूं, लेकिन मैं बस सतर्क कर रहा हूं $(window).height()और यह उसी तरह का मूल्य देता है $(document).height()

जब मैं 780px - 820px (मोटे तौर पर) के बीच अधिकतम हो जाता है, तो मैं अपने ब्राउज़रों की 13 "एमबीए और मेरी विंडो ऊंचाई पर होता हूं, लेकिन हर बार यह एक खिड़की की ऊंचाई दस्तावेज़ की ऊंचाई के समान होती है। साइट पर हर मामले में मैं इस पर काम कर रहा हूं। 1000px से अधिक।

यहाँ क्या हो रहा है?

alert($(window).height());
alert($(document).height()); 

आप किस ब्राउज़र पर काम कर रहे हैं?
कनिष्क पानमलडनिया

यह समस्या jquery-1.8.0 के साथ दिखाई देने लगी, jquery के पुराने संस्करणों ने इसे सही ढंग से किया (यहां तक ​​कि DOCTYPE सेट के बिना भी)
ralhei

जवाबों:


245

बिना किसी doctypeटैग के, क्रोम दोनों कॉल के लिए समान मूल्य की रिपोर्ट करता है।

कड़े सिद्धांत की तरह जोड़ना <!DOCTYPE html>मानों को विज्ञापित करने के लिए काम करता है।

doctypeटैग होना चाहिए बहुत अपने दस्तावेज़ में पहली बात। उदाहरण के लिए, आपके पास इससे पहले कोई पाठ नहीं हो सकता है, भले ही वह कुछ भी प्रस्तुत न करे।


11
फ़ायर्फ़ॉक्स भी इस रिपोर्टिंग को तब तक करता है जब तक कि आप एक सख्त
सिद्धांत का

इसके अलावा, गलत सिद्धांत, ट्विटर बूटस्ट्रैप स्क्रॉलपीसी को उसी कारण से अजीब तरह से कार्य करने के लिए बनाता है, जो $ (विंडो) .height () दस्तावेज़ की ऊंचाई देता है।
निधेशदास

3
मेरे मामले में, मेरे पास Response.Writeएएसपी साइट पर मेरे कोड में एक था जो 1किसी भी HTML से पहले आउटपुट कर रहा था । इसलिए मेरा डॉक प्रकार सही था, लेकिन तकनीकी रूप से पृष्ठ पर पहली बात नहीं थी।
जेम्स

1
मैं एक ही समस्या है, लेकिन
सिद्धांत को

1
" Doctype टैग आपके दस्तावेज़ में सबसे पहली चीज़ होनी चाहिए। उदाहरण के लिए, आपके पास इससे पहले कोई php कोड नहीं हो सकता है, भले ही वह कुछ भी प्रस्तुत न करे। " यह संभवतः कैसे हो सकता है? ब्राउज़र को पता नहीं है कि सर्वर क्या चल रहा है, यह केवल HTML मार्कअप के साथ एक पाठ फ़ाइल प्राप्त करता है। यदि आप IIS चला रहे हैं और अपाचे नहीं तो क्या होगा? ब्राउज़र को परवाह नहीं है कि सर्वर क्या कर रहा है।
सेबलफोस्टे '

24

मुझे भी यही समस्या थी, और इसका उपयोग करके इसे हल किया।

var w = window.innerWidth;
var h = window.innerHeight;

1
बहुत अजीब है, मैं उचित सिद्धांत का उपयोग कर रहा हूँ। आपके भीतर ने मेरी समस्या तय कर दी! धन्यवाद
मार्टिन वैन खुर

1
समान समस्या - मान्य सिद्धांत और सभी थी। थोड़ा और अधिक क्रॉस-प्लेटफ़ॉर्म: var w = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth; var h = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight;
मेलानी जोंसन

वास्तव में समस्या को ठीक करना (और हाँ मेरे पास एक
सिद्धांत है

1

मुझे लगता है कि आपके दस्तावेज़ को अपनी सामग्री प्रदर्शित करने के लिए खिड़की में पर्याप्त स्थान होना चाहिए। इसका मतलब है कि दस्तावेज़ के किसी और हिस्से को देखने के लिए नीचे स्क्रॉल करने की आवश्यकता नहीं है। उस स्थिति में, दस्तावेज़ की ऊँचाई खिड़की की ऊँचाई के बराबर होगी।


दस्तावेज़ हर पृष्ठ में खिड़की के नीचे से नीचे तक फैला हुआ है।
फ्रेजर

0

इसके लिए यहां एक प्रश्न और उत्तर दिया गया है: स्क्रीन.वैलहाइट और विंडो के बीच अंतर। लाइट ()

चित्र भी हैं, इसलिए आप वास्तव में अंतर देख सकते हैं। उम्मीद है की यह मदद करेगा।

मूल रूप से, $(window).height()आपको ब्राउज़र विंडो (व्यूपोर्ट) के अंदर अधिकतम ऊंचाई प्रदान करता है, और $(document).height()आपको ब्राउज़र के अंदर दस्तावेज़ की ऊंचाई देता है। ज्यादातर समय, वे बिल्कुल वही होंगे, यहां तक ​​कि स्क्रॉलबार के साथ भी।


0

अगर हम अपने वेब पेज jquery (विंडो) पर Doctype का उपयोग करते हैं तो यह वास्तव में काम कर रहा है, व्यूपोर्ट की ऊँचाई को वापस कर देगा अन्यथा यह पूरी दस्तावेज़ ऊँचाई लौटा देगा।

अपने वेब पेज के शीर्ष पर निम्नलिखित टैग को परिभाषित करें: <!DOCTYPE html>


अपने वेब पेज के शीर्ष पर इस टैग का उपयोग करें: <! DOCTYPE html>
गौरव यादव
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.