मैंने इस बिल्कुल हास्यास्पद बग (केवल आईई 7 में प्रकट) पर अविश्वसनीय मात्रा बर्बाद कर दी है, वेबपृष्ठ में यहां कोड डालने के लिए बहुत जटिल है, जहां element.className = element.className
काम नहीं कर रहा था।
try{
element.parentNode.style.cssText += "";
element.parentNode.style.zoom = 1;
element.style.cssText += "";
element.style.zoom = 1;
}catch(ex){}
:
IE7 (अच्छी तरह से, जगह में कम से कम परीक्षण किया मैं बग का सामना किया है) के लिए अंतिम समाधान नीचे लाइनों के सभी किसी भी डोम परिवर्तन करने के लिए एक हुक के रूप में क्रियान्वित किया जा रहा है
हमारे पास पहले से ही पहले दो लाइनें हैं (try-catch
से घिरा हुआ है) हमारे ढांचे में लंबे समय तक, लेकिन यह कुछ विशेष परिदृश्य में अपर्याप्त हो गया, लेकिन अगले दो इसे जोड़कर जोड़ा गया।
अधिकतम और गैर-अधिकतम विंडो में परीक्षण किया गया।
try/catch
जगह पर है क्योंकि कुछ निश्चित परिस्थितियों में (उदा। iframe
के अंदर) यह एक जेएस त्रुटि उत्पन्न कर सकता है जो ऐप तोड़ देगा (यह मेरी टीम के साथी से जानकारी है, मुझे इसे स्वयं सामना नहीं हुआ है)।
इसके विपरीत, IE8 के लिए, element.className = element.className
अपना काम कर रही करने के लिए (हाँ, हम सब एक संस्करण के लिए सशर्त कोड प्यार ...)
मैं विन XP प्यार एक OS के रूप में लगता है, लेकिन आईई बाध्य तक लोग इसका इस्तेमाल करते हैं, हमें ऐसी पागल समस्याओं के लिए गंदे फिक्स मिलना पड़ता है ... बहुत दुखद।
संपादित 2013.03.05
स्निपेट के ऊपर परिदृश्यों के अधिकांश में काम करने लग रहा था, लेकिन यह भी एक ही स्थान पर पर्याप्त नहीं था।अब हमारे पास हमारे कोड में इस तरह की चीजें हैं:
try {
var s1 = domElt.parentNode.style, s2 = domElt.style;
var dummyCss = "foo:foo;"; // do not add leading ';' here!
s1.cssText += "";
s1.zoom = 1;
s2.cssText += dummyCss;
s2.cssText = s2.cssText.replace(dummyCss, "");
} catch (ex) {}
हाँ! यह समस्या शरीर के ठीक नीचे तत्वों को प्रभावित करती है, इसलिए मैं इसका उपयोग कर रहा हूं: document.body.className = document.body.className; धन्यवाद! –
एमएम उत्कृष्ट फिक्स - एक आईई 7 रिफ्लो मुद्दा तय किया गया था जिसमें मुझे – John
था। है। बहुत बढ़िया। – allixsenos