दिलचस्प पोस्ट
क्या VBA के पास शब्दकोश संरचना है? कैसे एक स्ट्रिंग "StartsWith" एक और स्ट्रिंग की जांच करने के लिए? नंबर से महीना नाम प्राप्त करें एआरसी के तहत सिंगलटन पैटर्न को लागू करने के लिए एप्पल अनुशंसा क्यों करता है? प्रोल में शफल करें क्या मुझे गुणन या विभाजन का उपयोग करना चाहिए? MySQL में मान सम्मिलित करने के लिए Bash स्क्रिप्ट किसी संदर्भ प्रकार के दो उदाहरणों की तुलना करने के लिए "सर्वोत्तम अभ्यास" क्या है? एक संशोधित प्रीर्डर ट्री ट्रवर्सल मॉडल (नेस्टेड सेट) को एक <ul> में लेना पुराने रिमोट जीआईटी की शाखाओं को साफ करना 2 == जावास्क्रिप्ट में क्यों होता है? जावा में HTTP शीर्षलेख एन्कोडिंग / डीकोडिंग एक ठोस वर्ग और एक अमूर्त वर्ग के बीच अंतर क्या है? PHP त्रुटि संदेश प्रदर्शित नहीं करता है एलिमेंट्स में एक एरेमेंट को हटाना यदि एलिमेंट एक निश्चित वैल्यू VBA है

क्लाइंटहैइट / क्लाइंटवेथ विभिन्न ब्राउज़रों पर विभिन्न मानों को लौट रहा है

प्रॉपर्टीज document.body.clientHeight और document.body.clientWidth आईई 7, आईई 8 और फ़ायरफ़ॉक्स पर अलग-अलग मान लौटाते हैं:

IE 8:

 document.body.clientHeight : 704 document.body.clientWidth : 1148 

IE 7:

 document.body.clientHeight : 704 document.body.clientWidth : 1132 

फ़ायर्फ़ॉक्स:

 document.body.clientHeight : 620 document.body.clientWidth : 1152 

यह विसंगति क्यों मौजूद है?
क्या jQuery के उपयोग किए बिना अलग-अलग ब्राउज़रों (IE8, IE7, Firefox) में कोई समान गुण हैं?

वेब के समाधान से एकत्रित समाधान "क्लाइंटहैइट / क्लाइंटवेथ विभिन्न ब्राउज़रों पर विभिन्न मानों को लौट रहा है"

यह ब्राउज़र के बॉक्स मॉडल के साथ करना है DOM मॉडल को सामान्य करने के लिए jQuery या किसी अन्य JavaScript अमूर्त पुस्तकालय की तरह कुछ का उपयोग करें।

पॉल ए के बारे में सही है कि क्यों विसंगति मौजूद है लेकिन Ngm द्वारा प्रस्तुत समाधान गलत है (JQuery के अर्थ में)।

क्लाइंट के बराबर और jQuery में क्लाइंट चौड़ाई (1.3) है

 $(window).width(), $(window).height() 

शरीर का तत्व उपलब्ध चौड़ाई लेता है, जो आमतौर पर आपके ब्राउज़र व्यूपोर्ट होता है जैसे, ब्राउज़र क्रोम सीमाओं, स्क्रॉलबार, ऊर्ध्वाधर स्थान के कारण मेनू और क्या नहीं होने के कारण यह अलग-अलग आयाम क्रॉस ब्राउज़र होगा …

तथ्य यह है कि ऊंचाइयों में भी भिन्नता है, यह भी बताता है कि आप सीएसएस के माध्यम से शरीर / एचटीएमएल की ऊंचाई को 100% तक सेट करते हैं, क्योंकि ऊंचाई आम तौर पर शरीर के तत्वों पर निर्भर होती है ..

जब तक आप शरीर तत्व की चौड़ाई सीएसएस के माध्यम से एक निश्चित मूल्य तक नहीं सेट करते हैं या इसकी शैली की संपत्ति होती है, तो यह एक नियम के रूप में आयाम होता है, हमेशा क्रॉस ब्राउज़र / संस्करणों को बदलता रहता है और शायद ब्राउज़र के लिए आपके द्वारा इंस्टॉल किए गए प्लग इन के आधार पर भी। इस तरह के मामले में लगातार मूल्यों को नियम का एक अपवाद है …

जब आप अन्य तत्वों पर क्लिक करते हैं, जो ब्राउज़र व्यूपोर्ट की स्वत: चौड़ाई नहीं लेते हैं, तो यह हमेशा तत्वों की चौड़ाई '' पैडिंग '' लौटेगा। इसलिए चौड़ाई 200 और एक पैडिंग 20 में क्लाइंट वाइड = 240 (20 पैडिंग बाएं और दाएं) होगा।

मुख्य कारण हालांकि, क्यों ग्राहक क्लाइंट की शुरुआत करेगा, परिणाम में संभवतः अपेक्षित विसंगतियों के कारण होता है। अगर आपको पता है कि आपको एक स्थिर चौड़ाई मिल जाएगी और मूल्य ज्ञात है, तो क्लाइंट का उपयोग करना चाहिए Width अनावश्यक है …

ऑफसेटहाइट और ऑफसेटविड्थ के बराबर jQuery में है $ (विंडो) .विथथ (), $ (विंडो) .हाइट () यह ग्राहक नहीं हैइटवॉइंट और क्लाइंटउड्डा

Element.clientWidth और Element.clientHeight किसी भी लागू पैडिंग के अलावा कि तत्व की सामग्री की ऊंचाई / चौड़ाई वापस।

इनके कार्यान्वयन के jQuery के कार्यान्वयन हैं: $(target).outerWidth() और $(target).outerHeight()

.clientWidth और .clientHeight सीएसओएम देखें मॉड्यूल विनिर्देश में शामिल हैं जो वर्तमान में काम कर रहे ड्राफ्ट चरण में है। हालांकि आधुनिक ब्राउज़रों के पास इस विनिर्देश का एक सुसंगत कार्यान्वयन है, जबकि लीगेसी प्लेटफॉर्म पर लगातार प्रदर्शन का बीमा करने के लिए, jQuery के कार्यान्वयन का उपयोग अभी भी किया जाना चाहिए।

अतिरिक्त जानकारी:

  • https: //developer.mozilla [dot] org / en-US / docs / वेब / एपीआई / Element.clientWidth
  • https: //developer.mozilla [dot] org / en-US / docs / वेब / एपीआई / Element.clientHeight

क्लाइंट के साथ मेरी समस्या को ठीक करने के लिए मैंने क्या किया हैहैइट क्लाइंट का उपयोग करने के लिए है I मैं आईई 11 का प्रयोग एक डेटाबेस से लेबल्स प्रिंट करने के लिए करता हूं और क्लाइंट हाय है जो आईई 8 में काम करता है, आईई 11 में 0 की ऊँचाई लौटा रहा था। मुझे उस नियंत्रण में एक संपत्ति मिली जिसे कि पहली बच्ची के रूप में सूचीबद्ध किया गया था और अगर क्लाइंट की संपत्ति थी और वास्तव में वह ऊँचाई जिसके लिए मैं तलाश कर रहा था। इसलिए यदि आपका नियंत्रण ग्राहक को वापस कर रहा है 0 का आकार अपने पहले चीज की संपत्ति पर एक नज़र डालें यह मेरी मदद की …

मुझे एक ऐसी ही समस्या थी – फ़ायरफ़ॉक्स ने obj.clientHeight का सही मूल्य लौटाया, परन्तु यह नहीं हुआ – यह 0 लौट आया। मैंने इसे obj.offsetHeight में बदल दिया और यह काम किया। ऐसा लगता है कि ऐसा कुछ राज्य है जो कि क्लाइंटशिप के लिए है – जो इसे बनाता है अगर …

यह IE के बॉक्स मॉडल बग के कारण हो सकता है इसे ठीक करने के लिए, आप बॉक्स मॉडल हैक का उपयोग कर सकते हैं।

ब्राउज़र विंडो के लिए कुछ और जानकारी: http://www.w3schools.com/js/js_window.asp?output=print