2009-03-27 8 views
5

मेरी साइट में स्क्रीन की चौड़ाई के लिए अनुकूलित कई स्टाइल शीट हैं। चूंकि ब्राउजर का आकार बदलता है, window.onresize इवेंट जांचता है कि वास्तव में document.documentElement.clientWidth को देखकर एक आकार बदलता है। यदि ऐसा होता है, तो स्क्रॉलबार दिखाई देने तक यह लगातार बड़ी स्टाइल शीट चालू करता है। फिर, जब तक स्क्रॉलबार गायब नहीं हो जाते हैं, तो यह उन्हें विपरीत क्रम में बंद कर देता है। ScrollWidth को ऑफ़सेट विड्थ की तुलना करके स्क्रॉलबार का पता लगाया जाता है।आईई 8 मानकों मोड में वास्तव में विंडो का आकार बदलने पर मैं कैसे पता लगा सकता हूं?

आईई 8 में, दो नई समस्याएं आकार बदलने का पता लगाना। एक, जब भी स्क्रॉलबार प्रकट होते हैं या गायब हो जाते हैं, और दो, d.dE.clientWidth स्क्रॉलबार के बिना चौड़ाई की रिपोर्ट करता है, आईई 7 और अन्य सभी ब्राउज़रों से एक ब्रेक की रिपोर्ट करता है। मेरी साइट अब अक्सर एक लूप में फंस जाती है जिसमें ऑनरेज़ लॉजिक एक बड़ी स्टाइल शीट को सक्रिय करता है, जो स्क्रोलबार बनाता है, जो तब एक और आकार बदलने की घटना को ट्रिगर करता है जिसे फ़िल्टर नहीं किया जा सकता है क्योंकि क्लाइंटविड्थ स्क्रॉलबार दिखाई देने या गायब होने के कारण बदल गया है। यह एक मामूली फिक्स होगा यदि आईई 8 में बाहरी वाइड की तरह कुछ था जो मैं देख सकता था।

उत्तर

3

चूंकि मैंने कभी भी किसी भी ब्राउज़र में ऑनरसाइज करने के लिए स्क्रॉलबार पीढ़ी के साथ निपटाया नहीं था, मुझे एहसास नहीं हुआ कि d.dE.clientWidth जांचना एक अच्छा सत्यापन नहीं था, और वास्तव में कभी भी स्क्रॉलबार शामिल नहीं थे। अब मैं d.dE.offsetWidth की जांच करता हूं, और दोहराए गए ऑनर्सइज़ ईवेंट को फ़िल्टर किया जाता है।

1

आप लगभग इस बारे में निश्चित रूप से अवगत हैं - और यह वास्तव में आपके प्रश्नों का उत्तर नहीं देता है क्योंकि यह मानक मोड से IE8 को मजबूर कर रहा है - लेकिन त्वरित सुधार force IE8 into IE7 mode using an HTTP header होगा।

+0

यह एक अच्छा समाधान होगा यदि आईई 7 संगतता मोड ने सीमा-पतन और होवर रिग्रेशन का परिचय नहीं दिया जो कि काम करने के लिए बहुत बदसूरत हैं। – Lucent

संबंधित मुद्दे