1. मुख्य प्रश्न का उत्तर
स्क्रिप्ट $(window).height()
अच्छी तरह से काम करती है (व्यूपोर्ट की ऊँचाई दिखाती है और स्क्रॉलिंग ऊँचाई के साथ दस्तावेज़ नहीं), लेकिन क्या यह आवश्यक है कि आप अपने दस्तावेज़ में सही रूप से टैग टैग लगा दें, उदाहरण के लिए ये सिद्धांत:
HTML 5 के लिए:
<!DOCTYPE html>
संक्रमणकालीन HTML4 के लिए:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
संभवतः कुछ ब्राउज़रों द्वारा ग्रहण किया गया डिफ़ॉल्ट सिद्धांत ऐसा है, जो $(window).height()
दस्तावेज़ की ऊंचाई लेता है न कि ब्राउज़र की ऊँचाई। Doctype विनिर्देशन के साथ, यह संतोषजनक रूप से हल हो गया है, और मुझे पूरा यकीन है कि आप पेप्स "बदलते स्क्रॉल-ओवरफ्लो को छिपाएंगे और फिर वापस" से बचेंगे, जो कि, मुझे क्षमा करें, थोड़ा गंदा चाल है, विशेषकर यदि आप डॉन ' टी इसे भविष्य के प्रोग्रामर के उपयोग के लिए कोड पर दस्तावेज़ करें।
2. एक अतिरिक्त टिप, एक तरफ ध्यान दें:
इसके अलावा, यदि आप एक स्क्रिप्ट कर रहे हैं, तो आप अपने पुस्तकालयों का उपयोग करने में प्रोग्रामर की मदद करने के लिए परीक्षण का आविष्कार कर सकते हैं, मुझे एक जोड़े का आविष्कार करने दें:
$ (दस्तावेज़)। पहले से ही (फ़ंक्शन) ({
if(typeof $=='undefined') {
alert("PROGRAMMER'S Error: you haven't called JQuery library");
} else if (typeof $.ui=='undefined') {
alert("PROGRAMMER'S Error: you haven't installed the UI Jquery library");
}
if(document.doctype==null || screen.height < parseInt($(window).height()) ) {
alert("ERROR, check your doctype, the calculated heights are not what you might expect");
}
});
संपादित करें: भाग 2 के बारे में, "एक अतिरिक्त टिप, ध्यान दें": @ मचिअल, कल की टिप्पणी (2014-09-04) में, पूरी तरह से सही था: $ का चेक, गुड़ की तैयार घटना के अंदर नहीं हो सकता, क्योंकि जैसा कि उन्होंने बताया, यह मानते हुए कि $ पहले से ही परिभाषित है। इस बात को जानने के लिए धन्यवाद, और यदि आप इसे अपनी लिपियों में इस्तेमाल करते हैं, तो कृपया बाकी पाठकों को भी इसे सुधारने दें। मेरा सुझाव है: अपने पुस्तकालयों में एक "install_script ()" फंक्शन डालें जो लाइब्रेरी को इनिशियलाइज़ करता है (इस तरह के इनिट फंक्शन के अंदर $ का कोई भी संदर्भ रखें, जिसमें तैयार () की घोषणा भी शामिल है) और इस तरह के "install_script ()" फंक्शन की BEGINNING जांचें कि क्या $ परिभाषित किया गया है, लेकिन सब कुछ JQuery से स्वतंत्र करें, इसलिए जब JQuery अभी तक परिभाषित नहीं हुआ है, तो आपकी लाइब्रेरी "खुद का निदान" कर सकती है। मैं इस विधि को पसंद करता हूं बजाय एक JQuery के स्वत: निर्माण को CDN से लाने के लिए मजबूर करने के लिए। वे अन्य प्रोग्रामर की मदद करने के लिए एक तरफ छोटे नोट हैं। मुझे लगता है कि संभावित प्रोग्रामर की गलतियों की प्रतिक्रिया में लाइब्रेरी बनाने वाले लोग अधिक अमीर होंगे। उदाहरण के लिए, Google Apis को त्रुटि संदेशों को समझने के लिए एक अलग मैनुअल की आवश्यकता होती है। यह बेतुका है, कुछ छोटी गलतियों के लिए बाहरी प्रलेखन की आवश्यकता है जो आपको मैन्युअल या विनिर्देशन पर जाने और खोजने की आवश्यकता नहीं है। लाइब्रेरी को SELF-DOCUMENTED होना चाहिए। मैं उन गलतियों को ध्यान में रखते हुए कोड लिखता हूं जो अब से छह महीने बाद भी हो सकती हैं, और यह अभी भी एक साफ-सुथरा और दोहराव वाला कोड होने की कोशिश करता है, जो पहले से ही लिखित-से-रोकथाम-भविष्य-डेवलपर-गलतियाँ हैं। मुझे लगता है कि संभावित प्रोग्रामर की गलतियों की प्रतिक्रिया में लाइब्रेरी बनाने वाले लोग अधिक अमीर होंगे। उदाहरण के लिए, Google Apis को त्रुटि संदेशों को समझने के लिए एक अलग मैनुअल की आवश्यकता होती है। यह बेतुका है, कुछ छोटी गलतियों के लिए बाहरी प्रलेखन की आवश्यकता है जो आपको मैन्युअल या विनिर्देशन पर जाने और खोजने की आवश्यकता नहीं है। लाइब्रेरी को SELF-DOCUMENTED होना चाहिए। मैं उन गलतियों को ध्यान में रखते हुए कोड लिखता हूं, जो अब से छह महीने बाद भी हो सकती हैं, और यह अभी भी एक साफ-सुथरा और दोहराव वाला कोड होने की कोशिश करता है, जो पहले से ही लिखित-से-रोकने-भविष्य-डेवलपर-गलतियों के लिए है। मुझे लगता है कि संभावित प्रोग्रामर की गलतियों की प्रतिक्रिया में लाइब्रेरी बनाने वाले लोग अधिक अमीर होंगे। उदाहरण के लिए, Google Apis को त्रुटि संदेशों को समझने के लिए एक अलग मैनुअल की आवश्यकता होती है। यह बेतुका है, कुछ छोटी गलतियों के लिए बाहरी प्रलेखन की आवश्यकता है जो आपको मैन्युअल या विनिर्देशन पर जाने और खोजने की आवश्यकता नहीं है। लाइब्रेरी को SELF-DOCUMENTED होना चाहिए। मैं उन गलतियों को ध्यान में रखते हुए कोड लिखता हूं, जो अब से छह महीने बाद भी हो सकती हैं, और यह अभी भी एक साफ-सुथरा और दोहराव वाला कोड होने की कोशिश करता है, जो पहले से ही लिखित-से-रोकने-भविष्य-डेवलपर-गलतियों के लिए है। t आपको किसी मैनुअल या विनिर्देशन को खोजने और खोजने की आवश्यकता है। लाइब्रेरी को SELF-DOCUMENTED होना चाहिए। मैं उन गलतियों को ध्यान में रखते हुए कोड लिखता हूं जो अब से छह महीने बाद भी हो सकती हैं, और यह अभी भी एक साफ-सुथरा और दोहराव वाला कोड होने की कोशिश करता है, जो पहले से ही लिखित-से-रोकथाम-भविष्य-डेवलपर-गलतियों के लिए है। t आपको किसी मैनुअल या विनिर्देशन को खोजने और खोजने की आवश्यकता है। लाइब्रेरी को SELF-DOCUMENTED होना चाहिए। मैं उन गलतियों को ध्यान में रखते हुए कोड लिखता हूं जो अब से छह महीने बाद भी हो सकती हैं, और यह अभी भी एक साफ-सुथरा और दोहराव वाला कोड होने की कोशिश करता है, जो पहले से ही लिखित-से-रोकथाम-भविष्य-डेवलपर-गलतियों के लिए है।