IE9 मेरी वेबसाइट पर संगतता मोड में क्यों स्विच करता है?


197

मैंने अभी IE9 बीटा स्थापित किया है और एक विशिष्ट साइट पर मैंने (HTML5) IE9 को संगतता मोड में बनाया है जब तक कि मैं मैन्युअल रूप से इसे नहीं बताता हूं। मैंने वेबसाइट के कई हिस्सों को हटाने की कोशिश की है लेकिन कोई बदलाव नहीं हुआ। जिसमें सभी CSS को शामिल करना शामिल है। मेरी कुछ अन्य वेबसाइट पर यह ठीक है।

इसके अलावा, इसे मैन्युअल रूप से सेट न करें क्योंकि तब IE9 उपयोगकर्ता सेटिंग को याद करता है और आप इसे स्वचालित रूप से वापस चालू नहीं कर सकते हैं (या कम से कम मुझे नहीं मिला है, निजी ब्राउज़िंग और कैश खाली करने के माध्यम से भी नहीं)

वैसे भी। वह साइट जहां यह संगतता मोड से कूदता है: http://alliancesatwar.com/guide/
वह जहां यह सही प्रदान करता है: http://geuze.name/basement/ (मैं 1 से अधिक हाइपरलिंक पोस्ट नहीं कर सकता)

दोनों समान doctypeऔर सभी का उपयोग करते हैं । उन साइटों में एक ही मूल टेम्पलेट (एन्कोडिंग, मेटा टैग, सिद्धांत और एक ही जावास्क्रिप्ट) का उपयोग करके आम (उपस्थिति के अलावा) में बहुत कुछ है

यह बहुत अच्छा होगा अगर किसी के पास मेरे लिए कोई उत्तर हो! एक HTML5 वेबसाइट जो IE7- मोड में प्रस्तुत करती है वह सुंदर है ... लंगड़ा।


5
कृपया "संगतता मोड में कूदता है" समझाएं? यदि आप पृष्ठ को ताज़ा करते हैं और एक गुब्बारा है जो कहता है कि IE ने किसी समस्या के कारण संगतता दृश्य में इस पृष्ठ को ताज़ा किया है, तो इसका मतलब है कि आपको एक IE बग मिला है जिसे "हार्ड मुखर" कहा जाता है जो रेंडरिंग इंजन में क्रैश के समान है । हम इन्हें ढूंढने और ठीक करने में रुचि रखते हैं; कृपया Connect.microsoft.com/ie पर एक बग दर्ज करें । धन्यवाद!
एरिकलाव

जवाबों:


263

मेरे लिए IE9 documentMode में काम करता है।

X-UA-Compatibleएक स्पष्ट दस्तावेज़ सेट करने के लिए एक हेडर / मेटा के बिना , आपको एक मोड मिलेगा:

  • क्या उपयोगकर्ता ने पहले उस डोमेन में 'संगतता दृश्य' बटन पर क्लिक किया है;
  • शायद यह भी है कि क्या IE8 / 9 के रेंडर को दुर्घटनाग्रस्त करने और पुराने रेंडर को वापस करने के लिए साइट पर कुछ अन्य सामग्री के कारण यह स्वचालित रूप से हुआ है;
  • क्या उपयोगकर्ता ने डिफ़ॉल्ट रूप से सभी साइटों को संगतता दृश्य में रखने का विकल्प चुना है;
  • क्या IE को लगता है कि साइट आपके इंट्रानेट पर है और इसलिए संगतता दृश्य में चूक है;
  • क्या प्रश्न में साइट Microsoft की उन वेबसाइटों की सूची में है, जिन्हें संगतता दृश्य की आवश्यकता है।

आप IE मेनू से इन सेटिंग्स को 'टूल्स -> कम्पैटिबिलिटी व्यू सेटिंग्स' से बदल सकते हैं। बेशक वह मेनू अब चुपके से छिपा हुआ है, इसलिए आप इसे तब तक नहीं देखेंगे जब तक आप Alt नहीं दबाते।

एक साइट लेखक के रूप में, यदि आप आश्वस्त हैं कि आपकी साइट मानकों का अनुपालन करती है (अन्य ब्राउज़रों में अच्छी तरह से प्रस्तुत करती है, और फीचर-सूँघने का उपयोग यह तय करने के लिए करता है कि ब्राउज़र क्या उपयोग करने के लिए काम करता है), मैं उपयोग करने का सुझाव देता हूं:

<meta http-equiv="X-UA-Compatible" content="IE=Edge"/>

या HTTP शीर्ष लेख:

X-UA-Compatible: IE=Edge

जो भी IE संस्करण उपयोग में है नवीनतम रेंडरर प्राप्त करने के लिए।


79
महत्वपूर्ण नोट: यदि IE 9 को हमेशा संगतता मोड में इंट्रानेट साइट दिखाने के लिए कॉन्फ़िगर किया गया है, तो न तो मेटा टैग और न ही HTTP हेडर इसे ओवरराइड करेगा।
याकूब

29
जैसा कि जैकब का उल्लेख है, IE सभी स्थानीय / इंट्रानेट साइटों को कॉम्पिटिटर मोड में प्रदर्शित करने के लिए डिफ़ॉल्ट कर सकता है। प्रेस Alt -> उपकरण संगतता दृश्य सेटिंग्स, और सुनिश्चित करें कि आपके पास चेक बॉक्स नहीं है।
Cory Mawhorter

30
मेटा टैग ने केवल मेरे लिए काम किया जब मैंने इसे <head> के ठीक बाद रखा (नीचे उत्तर भी देखें)। जब मैंने इसे <head> एलिमेंट के भीतर रखा, तो यह काम नहीं किया (मुझे अभी भी फटा हुआ पेज मिला है)।
बोरिस वैन शुटेन

13
@ जैकब: यह भ्रामक है। हां, आप संगतता ब्राउज़र मोड में होंगे और कोई रास्ता नहीं है। लेकिन आप अभी भी डॉक्यूमेंट मोड सेट करने के लिए HTTP हेडर का उपयोग कर सकते हैं, जिसमें कभी भी IE का संस्करण आपकी साइट के लिए सबसे अच्छा काम करता है। IE = एज आपको हमेशा नवीनतम रेंडरिंग इंजन देना चाहिए। तो भले ही आप तकनीकी रूप से संगतता मोड में हों, आप अपने पृष्ठों को सामान्य मोड में प्रस्तुत कर सकते हैं। सही होने पर मुझे सही करें लेकिन कम से कम हमारी इंट्रानेट साइट ठीक इसी तरह काम करती है (यहां तक ​​कि "संगतता इंट्रानेट साइटों को संगतता दृश्य में" सेटिंग की जाँच की गई)।
mkataja

7
@BorisvanSchooten: मुझे नहीं पता कि यही कारण है कि, लेकिन <meta>टैग को संसाधित HTML फ़ाइल के पहले 512 बाइट्स के भीतर होना चाहिए। मैं कहता हूं "संसाधित" क्योंकि आप सभी प्रकार के PHP को वहां रख सकते हैं, लेकिन प्रदान किया गया कोड महत्वपूर्ण है। मैंने अपनी सारी टिप्पणियाँ टैग के <meta>नीचे रख दी हैं <meta>, ताकि मैं आवश्यकता न तोड़ूँ।
डबलजे

33

मैंने डाला

<meta http-equiv="X-UA-Compatible" content="IE=Edge"/>

पहली बात

<head>

(मैंने इसे कहीं पढ़ा, मैं याद नहीं कर सकता)

मुझे विश्वास नहीं हो रहा था कि यह काम किया !!


आपको टैब बंद करना होगा और एक नया टैब खोलना होगा, क्या आपने ऐसा प्रयास किया है?
जेब

1
उन्होंने कहा कि "नहीं" "नहीं";)
नाथन जेबी

14
+1, यह एक बहुत मूल्यवान नोट है । यदि आप इस कथन से पहले <script>अंदर आ गए हैं , तो इसे (IE = edge) नजरअंदाज कर दिया जाएगा। <head>meta
जक.बग।

22

IE को IE9 मानकों के रेंडर करने के लिए मजबूर करने के लिए आपको उपयोग करना चाहिए

<meta http-equiv="X-UA-Compatible" content="IE=edge">

कुछ शर्तों के कारण IE9 संगतता मोड में नीचे कूद सकता है। डिफ़ॉल्ट रूप से यह इंट्रानेट साइटों पर हो सकता है।


यह दूसरी वेबसाइट में काम करता है। तो यह नहीं होना चाहिए। इसके अलावा, मेटा-टैग तब से ही खराब है क्योंकि आपको हर बार नए IE संस्करण में इसे मैन्युअल रूप से अपडेट करना होगा।
रेने

2
क्षमा करें, मैं आपकी समस्या को ठीक नहीं कर सकता। हालांकि, मैंने IE=edgeइसके बजाय उपयोग करने के लिए अपना उत्तर संपादित किया है , जो हमेशा उपलब्ध नवीनतम इंजन के उपयोग को आमंत्रित करता है।
डेलन अजाबनी

आपकी धारणा गलत है। डीआईओ एक्स-यूए-संगत को निर्दिष्ट करता है ताकि आईई को संगतता दृश्य बटन दिखाने से रोका जा सके क्योंकि यदि उपयोगकर्ता इसे धक्का देता है, तो साइट सामग्री सही तरीके से काम नहीं करेगी।
एरिकलाव

@ReneGeuze, आपको यह गलत लगा। एज हमेशा आईई के नवीनतम संस्करण को संदर्भित करता है।
बजे newwf

@DelanAzabani मेरा इंट्रानेट पोर्टल स्विचिंग कम्पैटिबिलिटी मोड में है, यहाँ तक कि जैसा कि आपने सुझाव दिया, मैं मेटा टैग भी जोड़ दिया। कृपया सुझाव दें कि यह कैसे हल हो सकता है और मानक मोड उदाहरण पर बना रह सकता है - IE 8, IE 8 comapitibility तो मैं IE 8 ही चाहता हूं।
dsi

6

मैंने एक अलग StackOverflow धागे पर यह टिप्पणी पोस्ट की है, लेकिन यह यहाँ दोहराने के लायक था:

हमारे इन-हाउस ASP.Net ऐप के लिए, वेब पेज पर "X-UA- कम्पेटिबल" टैग को जोड़कर, web.config में या कोड-बैक में बिल्कुल अंतर नहीं किया गया।

हमारे लिए काम करने वाली एकमात्र चीज़ IE8 में इस सेटिंग को मैन्युअल रूप से बंद करना था:

यहां छवि विवरण दर्ज करें

(आह।)

यह समस्या केवल इंट्रानेट साइटों पर IE8 और IE9 के साथ होती है। बाहरी वेबसाइटें ठीक काम करेंगी और IE8 / 9 के सही संस्करण का उपयोग करेंगी, लेकिन आंतरिक वेबसाइटों के लिए, IE9 अचानक यह वास्तव में IE7 तय करता है, और इसमें कोई HTML 5 समर्थन नहीं है।

नहीं, मैं इस तर्क को बिलकुल भी नहीं समझता।

मेरा अनिच्छुक समाधान यह परीक्षण करने के लिए है कि क्या ब्राउज़र में HTML 5 समर्थन है (एक कैनवास बनाकर, और यदि यह वैध है तो परीक्षण करके), और यदि यह मान्य नहीं है तो उपयोगकर्ता को यह संदेश प्रदर्शित करता है:

यहां छवि विवरण दर्ज करें

यह विशेष रूप से उपयोगकर्ता के अनुकूल नहीं है, लेकिन उपयोगकर्ता को इस कष्टप्रद सेटिंग को बंद करने के लिए प्राप्त करना केवल इन-हाउस HTML 5 वेब एप्लिकेशन को ठीक से चलाने देने का एकमात्र तरीका लगता है।

या उपयोगकर्ताओं को क्रोम का उपयोग करने के लिए मिलता है। ;-)


1

Http://www.HTML-5.com/index.html की साइट में X-UA- कम्पेटिबल मेटा टैग है, लेकिन फिर भी एड्रेस बार में "फटे पेज" आइकन द्वारा इंगित संगतता व्यू में जाता है। मानक मोड में किसी पृष्ठ को रेंडर करने के लिए IE 9 (अंतिम संस्करण 9.0.8112.16421) को बाध्य करने के लिए आपको मेनू विकल्प कैसे मिलता है? मैंने उस फटे हुए पेज आइकन पर क्लिक करने की कोशिश की और साथ ही रेने गीज़ द्वारा बताए गए अतिरिक्त मेनू विकल्पों को प्रदर्शित करने के लिए "ऑल्ट" कुंजी ट्रिक की, लेकिन उन लोगों ने काम नहीं किया।


4
मेटा के आसपास IE सशर्त टिप्पणी निकालें। आप पृष्ठ की सेवा कर रहे हैं application/xhtml+xml, इसलिए XML पार्सिंग नियमों का उपयोग किया जाता है; XML सशर्त टिप्पणियों का समर्थन नहीं करता है। किसी भी मामले में इसका कोई मतलब नहीं है; ब्राउजर को एक मोड का चयन करना होगा, इससे पहले कि वह यह तय कर सके कि क्या टिप्पणियों की व्याख्या करनी है।
बॉब

1

अधिक आधुनिक वेबसाइटों पर एक तरफ के रूप में, यदि आप बॉयलरप्लेट के अनुसार अपने HTML टैग पर सशर्त बयानों का उपयोग कर रहे हैं, तो यह कुछ कारणों के कारण संगतता मोड के डिफ़ॉल्ट होने का कारण होगा। यहाँ ठीक है कि html टैग से अपने सशर्त विवरणों को स्थानांतरित करें और उन्हें मुख्य भाग से बाहर दूसरे शब्दों में, बॉडी टैग में जोड़ें। इस तरह आप अभी भी पुराने ब्राउज़रों को लक्षित करने के लिए अपनी शैली शीट में उन कक्षाओं का उपयोग कर सकते हैं।


0

मुझे ठीक लगता है:

वैकल्पिक शब्द

आप सुनिश्चित हैं कि आपने विश्व स्तर पर या कुछ और पर सेटिंग नहीं की है? यह विंडोज 7 पर बीटा की एक साफ स्थापना है। डेवलपर उपकरण रिपोर्ट करते हैं कि पृष्ठ IE9 मानक मोड के लिए डिफ़ॉल्ट है।


मेरे पास इस त्रुटि की 1 से अधिक रिपोर्ट थी। हालाँकि हो सकता है कि इसे आधार dir ( alliancesatwar.com ) के साथ करना पड़े, क्योंकि यह सभी उप- डायर को संगतता मोड में भी प्रस्तुत करता है। लेकिन फिर मेरे पास सवाल है, वेबसाइट की जड़ में IE क्या वेबसाइट को संगतता मोड में प्रस्तुत करता है? तो शायद कम से कम यह गाइड सही कोडित है। मुझे तो उम्मीद है।
रेने

@ रेन स्ट्रेंज, मैंने होमपेज से गाइड लिंक पर क्लिक करके, इसे फिर से तैयार किया। लेकिन यह केवल एक बार हुआ है, और कुछ प्रयासों के बाद मुझे अभी तक इसे पुन: पेश करना है, बस एक बार ही
यी जियांग

0

मुझे हाल ही में इस मुद्दे को हल करना था और यहाँ मैंने क्या किया:

सबसे पहले, यह समाधान Apache सर्वर ट्यूनिंग के आसपास है।

दूसरा मुख्य विचार यह है कि IE9 में एक बग है जिसका अर्थ है कि मेटा टैग काम नहीं करेगा, इस समाधान के बजाय यह प्रयास करें

  • अपना httpd.conf ढूंढें / खोलें
  • निम्नलिखित पंक्ति को जोड़ / घटाएँ

    LoadModule headers_module modules/mod_headers.so
  • निम्नलिखित पंक्तियाँ जोड़ें

    <IfModule headers_module>
        Header set X-UA-Compatible: IE=EmulateIE8
    </IfModule>
  • अपने Apache सर्वर को सेव / रिस्टार्ट करें,

  • IE9 के साथ अपने पृष्ठ पर ब्राउज़ करें, जैसे उपकरणों का उपयोग wireshark या Fiddler या हेडर की जाँच करने के लिए आईई डेवलपर टूल का उपयोग नहीं है
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.