टैग्स का उपयोग करके फ़ोर्स IE कम्पैटिबिलिटी मोड


375

मैं एक ग्राहक के लिए काम कर रहा हूं जो सभी इंट्रानेट साइटों पर संगतता मोड को मजबूर करता है। मैं सोच रहा था कि क्या कोई टैग है जो मैं अपने HTML में डाल सकता हूं जो संगतता मोड को बंद कर देता है।


मुझे लगता है कि आप जिस उत्तर की तलाश कर रहे हैं वह यहां है: stackoverflow.com/questions/1014666/…
गेब्रियल

45
वास्तव में मैं सटीक विपरीत की तलाश कर रहा था, जो उनके मानक को संगतता क्षमता पर सेट करता है, बस पागल है।
अल कटावाज़ी

12
IE7 के अलावा किसी भी चीज़ पर क्रैश होने वाली विरासत ऐप पर खराब जावास्क्रिप्ट, जो संगतता के लिए अपना मानक निर्धारित करता है। एक दिन, हम इसे प्रतिस्थापित करने के लिए मिलेंगे ...
बुतपरस्त- gerbil

1
@ petethepagan-gerbil आपको इसे बदलने के लिए चारों ओर मिला? : पी
आइकेडवाटर

1
@ िडवाइट I ने 6 साल पहले कंपनी छोड़ी :) हमने जब भी उसी क्षेत्र में बदलाव किया, तो मुद्दों को दूर करने के लिए छोटे सुधार किए, लेकिन टेक ऋण को कभी प्राथमिकता नहीं दी गई। पता नहीं अगर यह कभी अंत में तय हो गया।
बुतपरस्त- gerbil

जवाबों:


535

"एज" मोड है

<html>
   <head>
      <meta http-equiv="X-UA-Compatible" content="IE=edge" />
      <title>My Web Page</title>
   </head>
   <body>
      <p>Content goes here.</p>
   </body>
</html>

लिंक किए गए MSDN पृष्ठ से:

एज मोड विंडोज इंटरनेट एक्सप्लोरर को उपलब्ध उच्चतम मोड में सामग्री प्रदर्शित करने के लिए कहता है, जो वास्तव में "लॉक-इन" प्रतिमान को तोड़ता है। इंटरनेट एक्सप्लोरर 8 के साथ, यह IE8 मोड के बराबर है। यदि इंटरनेट एक्सप्लोरर के भविष्य के रिलीज (काल्पनिक) ने उच्च संगतता मोड का समर्थन किया, तो एज मोड पर सेट पृष्ठ उस संस्करण द्वारा समर्थित उच्चतम मोड में दिखाई देंगे; हालाँकि, इंटरनेट एक्सप्लोरर 8 के साथ देखे जाने पर वही पृष्ठ IE8 मोड में दिखाई देंगे।

हालांकि, उत्पादन के उपयोग में "बढ़त" मोड को प्रोत्साहित नहीं किया गया है:

यह अनुशंसा की जाती है कि वेब डेवलपर्स पेज एज और अन्य गैर-उत्पादन उपयोगों के लिए एज मोड के अपने उपयोग को प्रतिबंधित करें क्योंकि विंडोज इंटरनेट एक्सप्लोरर के भविष्य के संस्करणों में पृष्ठ सामग्री प्रदान करने के संभावित अप्रत्याशित परिणाम हैं।

मैं ईमानदारी से पूरी तरह से समझ में क्यों नहीं आता। लेकिन इस हिसाब से फिलहाल जाना सबसे बेहतर तरीका है IE=8


7
8/6/2012 तक Microsoft IE=10अपनी साइटों पर उपयोग करता हुआ प्रतीत होता है। यदि आपने IE10 (पूर्वावलोकन संस्करण) में अपनी साइट का परीक्षण किया है, तो इसका उपयोग करना सुरक्षित है; अन्यथा, आप IE=9अभी के लिए छड़ी कर सकते हैं।
कैल्विनफ

75
मैंने पाया है कि यह काम नहीं करता है यदि उपयोगकर्ता (या sysadmin) ने संगतता मोड को डिफ़ॉल्ट रूप में चालू किया है Tools->Compatibility View Settings, और संगतता दृश्य में सभी वेबसाइटों को प्रदर्शित करें। समस्या को ठीक करने के लिए, मुझे HTTP प्रतिसाद में शीर्ष लेख को वापस करना है:X-UA-Compatible: IE=edge
स्पीडप्लेन

10
+1 करने के लिए गति - IE10 संगतता मोड इंट्रानेट साइटों के लिए डिफ़ॉल्ट रूप से है - UGH ... इस खोज के लिए धन्यवाद!
वाइपरगुइनाज

132
उन लोगों के लिए सलाह का शब्द जो इस उत्तर को ढूंढते हैं, लेकिन उनके लिए काम करने में असमर्थ हैं। कॉम्पिटिबिलिटी मेटा टैग MUST पहला मेटा टैग होना चाहिए , और टैग से पहले NO IE सशर्त विवरण हो सकते हैं। और अधिक: tesmond.blogspot.com/2011/10/…
क्रिस

2
धन्यवाद क्रिस! जब मैं अंत में आपकी टिप्पणी को पढ़ रहा था तो मैं 30 मिनट के लिए इससे जूझ रहा था। मेरे पास पहले नहीं था।
हॉकई

91

कई घंटों के बाद इस सामान की समस्या का निवारण ... यहाँ कुछ त्वरित हाइलाइट्स हैं जो X-UA-Compatibleडॉक्स से हमें मदद मिलीं: http://msdn.microsoft.com/en-us/library/cc288325(VS.85).aspx#ctl00_contentConttainer_ctl16

का उपयोग करते हुए <meta http-equiv="X-UA-Compatible" content=" _______ " />

  • स्टैंडर्ड उपयोगकर्ता एजेंट मोड (गैर अनुकरण वाले) की उपेक्षा <!DOCTYPE>अपने पृष्ठ में निर्देशों और IE के उस संस्करण के द्वारा समर्थित मानकों के आधार पर रेंडर (जैसे, IE=8होगा बेहतर पालन तालिका सीमा रिक्ति और की तुलना में कुछ छद्म चयनकर्ताओं IE=7)।

  • जबकि, एमुलेट मोड्स IE को <!DOCTYPE>आपके पेज में किसी भी निर्देश का पालन करने के लिए कहता है , आपके द्वारा चुने गए संस्करण के आधार पर रेंडरिंग मोड और रेंडर मोड को ऑन करता हैIE=5

  • contentविशेषता के लिए संभावित मान हैं:

    content="IE=5"

    content="IE=7"

    content="IE=EmulateIE7"

    content="IE=8"

    content="IE=EmulateIE8"

    content="IE=9"

    content="IE=EmulateIE9"

    content="IE=edge"


67

यदि आप इंट्रानेट ज़ोन में एक पृष्ठ के साथ काम कर रहे हैं, तो आप पा सकते हैं कि IE9 कोई फर्क नहीं पड़ता कि आप क्या करते हैं, IE7 संगत मोड में जा रहा है।

यह IE संगतता सेटिंग्स के भीतर सेटिंग के कारण है जो कहती है कि सभी इंट्रानेट साइटों को संगतता मोड में चलना चाहिए। आप इसे समूह नीति के माध्यम से अनचेक कर सकते हैं (या सिर्फ IE में इसे अनचेक कर सकते हैं), या आप निम्नलिखित सेट कर सकते हैं:

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

यह काम करता है (जैसा कि अन्य उत्तरों में विस्तृत है), लेकिन शुरू में ऐसा नहीं हो सकता है: स्टाइलशीट घोषित होने से पहले इसे आने की आवश्यकता है । यदि आप नहीं करते हैं, तो इसे अनदेखा कर दिया जाता है।


3
स्टाइलशीट के बारे में चेतावनी के लिए धन्यवाद, यह समस्याएं पैदा कर रहा था और मुझे अब इसका कारण पता है!
eMRe

हां, शुरू में प्लेसमेंट द्वारा मग किया गया था। इसे जोड़ने के लिए धन्यवाद।
जॉन मोयलान

धन्यवाद जो बहुत मददगार था। उनके पास एक GPO है जो प्रभावी IE स्तर को 7 पर सेट कर रहा है, भले ही IE 11 स्थापित हो। इसने मुझे js को काम करने के लिए साइट में कुछ शिम रखने से बचाया।
चार्ल्स ओवेन


28

जैसा कि संबंधित प्रश्न के इस उत्तर में सुझाया गया है , "किनारा" मोड को Web.Config फ़ाइल में सेट किया जा सकता है। यह इसे सभी HTML पर लागू होगा जो कि इसे अलग-अलग पृष्ठों में सम्मिलित करने की आवश्यकता के बिना आवेदन से लौटा दिया गया है:

<configuration>
    <system.webServer>
        <httpProtocol>
            <customHeaders>
                <add name="X-UA-Compatible" value="IE=edge" />
            </customHeaders>
        </httpProtocol>
    </system.webServer>
</configuration>

IIS सर्वर, संपूर्ण वेबसाइट या विशिष्ट अनुप्रयोगों के लिए IIS प्रबंधक का उपयोग करके "HTTP रिस्पांस हेडर्स" को संशोधित करके भी इसी चरण को पूरा किया जा सकता है ।


19

मेटा टैग सॉल्यूशन हमारे लिए काम नहीं कर रहा था, लेकिन रिस्पॉन्स हेडर में इसे सेट किया:

header('X-UA-Compatible: IE=edge,chrome=1');

3
'क्रोम = 1' के लिए +1; मुझे उसके बारे में कभी पता नहीं था। क्या यह मूल्य के लिए है, इसे IE = 10 में बदलने से मेरी साइट पर कई मुद्दों को प्रतिपादन किया गया है जिसका IE = किनारे पर कोई प्रभाव नहीं था।

का स्पष्टीकरण chrome=1संपत्ति, stackoverflow.com/a/22059516/368691 । यह ध्यान में रखते हुए कि क्रोम फ्रेम को सेवानिवृत्त कर दिया गया है। blog.chromium.org/2013/06/retiring-chrome-frame.html
गजस

1
अन्य उत्तरों पर टिप्पणियां देखें ... मैंने पाया है कि यह काम नहीं करता है यदि उपयोगकर्ता (या sysadmin) ने टूल-> संगतता दृश्य सेटिंग्स पर जाकर डिफ़ॉल्ट मोड के रूप में संगतता मोड चालू कर दिया है, और संगतता दृश्य में सभी वेबसाइट प्रदर्शित करें । स्पीडप्लेन Apr 19 '13 11:29 7 पर कॉम्पेटिबिलिटी मेटा टैग पहले मेटा टैग होना चाहिए, और टैग से पहले NO IE सशर्त विवरण हो सकते हैं। और अधिक: tesmond.blogspot.com/2011/10/… - क्रिस सोबोलेवस्की अगस्त
19'13

मैंने इसे लेआउट पेज में पहली पंक्ति में रखने की कोशिश की। यह काम नहीं करता है, स्टु ने बदलते आईआईएस HTTP रिस्पांस हेडर्स का उल्लेख किया है। मैंने कोशिश की। मैंने ऐप पूल पुनः आरंभ किया। मैं और निरीक्षण करता हूं। यह पृष्ठ अन्य पृष्ठ के अंतर्गत नेस्टिंग है। दूसरे पेज में एक और मेटा है। यह प्रोडक्शन वेबसाइट है। इसलिए कई लोग इस पृष्ठ पर पहुँच रहे हैं। इस टैग को शीर्ष पर रखना मिशन असंभव है। कोई अन्य समाधान या मैं पेंच हूँ
user12345

10

मेरे हालिया अनुभवों के आधार पर इस विषय पर कुछ और नोट्स। विश्वविद्यालय I IE 8 के साथ लैपटॉप के लिए काम करता है। सभी इंट्रानेट साइटों के लिए संगतता मोड में सेट करें। मैंने अपनी साइट द्वारा पृष्ठों की सेवा के लिए इस मोड को अक्षम करने के लिए मेटा टैग को जोड़ने की कोशिश की, लेकिन IE ने लगातार इस टैग को अनदेखा किया। जैसा कि लांस ने अपने पोस्ट में उल्लेख किया है, एक प्रतिक्रिया हेडर जोड़कर इस मुद्दे को ठीक किया। यह है कि मैंने HTML5 बॉयलरप्लेट पद्धति के आधार पर शीर्ष लेख को कैसे सेट किया:

<IfModule mod_headers.c>
  Header set X-UA-Compatible "IE=edge,chrome=1"
  # mod_headers can't match by content-type, but we don't want to send this header on *everything*...
  <FilesMatch "\.(appcache|crx|css|eot|gif|htc|ico|jpe?g|js|m4a|m4v|manifest|mp4|oex|oga|ogg|ogv|otf|pdf|png|safariextz|svg|svgz|ttf|vcf|webm|webp|woff|xml|xpi)$">
    Header unset X-UA-Compatible
  </FilesMatch>
</IfModule>

इस हेडर को वास्तव में भेजे जाने के लिए, आपको यह सुनिश्चित करना होगा कि आपके पास Apache में mod_headers चालू हैं। यदि आप यह सुनिश्चित करना चाहते हैं कि आपके पास यह मोड चालू है, तो इसे एक पृष्ठ पर रखें जो php चला सकता है:

<pre>
<?php
    print_r(apache_get_modules());
?>
</pre>

.Htaccess मेथड ने मेरे लिए काम किया, IE8 + में इसने कम्पैटिबिलिटी बटन (उर्फ एनमी नंबर 1) को हटा दिया और IE8 को कम्पैटिबिलिटी मोड का उपयोग करने से बचने के लिए मजबूर किया। संबंधित: मेटा टैग विकल्प केवल विभिन्न कंप्यूटरों पर कुछ शर्तों (IE वूडू) के तहत काम करने लगता है।
विलियम आइस्टेड

10

IE8 इंटर्नेट के लिए मानक मोड के लिए चूक और इंट्रानेट के लिए क्विरक्स मोड। HTML मेटा टैग को नजरअंदाज कर दिया जाता है, अगर आपके पास xhtml ट्रांस्फ़ॉर्म पर सेट किए गए सिद्धांत हैं। समाधान कोड में एक HTTP हेडर जोड़ना है। यह हमारे लिए काम किया। अब हमारी इंट्रानेट साइट मानकों में ऐप को रेंडर करने के लिए IE8 के लिए मजबूर कर रही है।

आधार पृष्ठ वर्ग (ASP.net C #) के PageInit में जोड़ा गया:

Response.AddHeader("X-UA-Compatible", "IE=EmulateIE8");

संदर्भ: http://ilia.ws/archives/196-IE8-X-UA-Compatible-Rant.html


3

यह IE संगतता सेटिंग्स के भीतर सेटिंग के कारण है जो कहती है कि सभी इंट्रानेट साइटों को संगतता मोड में चलना चाहिए। आप इसे समूह नीति के माध्यम से अनचेक कर सकते हैं (या सिर्फ IE में इसे अनचेक कर सकते हैं), या आप निम्नलिखित सेट कर सकते हैं:

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

जाहिरा तौर पर एक समूह नीति के रूप में संगतता दृश्य सेटिंग्स को बदलना संभव नहीं है, लेकिन यह कुछ ऐसा है जिसे शायद रजिस्ट्री में बदला जा सकता है, यह मेटा टैग मेरे लिए ठीक काम करता है, मुझे HTML फॉर्म के हिस्से के रूप में आवश्यक विशेषता काम करना था , यह क्रोम और फ़ायरफ़ॉक्स में काम करता था लेकिन IE नहीं।

यहाँ एक अच्छा दृश्य है कि ब्राउज़र प्रत्येक व्यक्ति HTML 5 तत्व का क्या समर्थन करता है।

http://html5readiness.com/

एक सामान्य भाजक Google Chrome पर ध्यान दें, यह सब कुछ का समर्थन करता है। उम्मीद है इससे मदद मिलेगी


फ़ायरफ़ॉक्स और IE 10 की तरह लग रहा है अब सब कुछ के रूप में अच्छी तरह से समर्थन करते हैं। चार्ट ऐसा नहीं करता है जो क्रोम के लिए स्पष्ट है।
टोनी एल।

0

टैग के तहत बहुत पहले आइटम के रूप में डालें।

यह IE को IE के भौतिक संस्करण में पृष्ठ को प्रस्तुत करने के लिए मजबूर करता है, और यह ब्राउज़र "मोड सेटिंग" को अनदेखा करता है। इसे डेवलपर टूल में सेट किया जा सकता है, इसे परीक्षण करने के लिए IE के पुराने संस्करण में बदलने की कोशिश करें, इसे नजरअंदाज किया जाना चाहिए और पृष्ठ को बिल्कुल एक जैसा दिखना चाहिए।


0

यदि आपके पास सर्वर तक पहुंच है, तो ऐसा करने का सबसे विश्वसनीय तरीका यह है कि इसे सर्वर पर ही, IIS में किया जाए। IIS HTTP रिस्पांस हेडर्स में जाएं। नाम जोड़ें: X-UA- संगत
मूल्य: IE = एज यह आपके ब्राउज़र और आपके कोड को ओवरराइड करेगा।


यह आईआईएस में नई तैनाती पर रीसेट करता है अगर वेबसाइट के स्तर पर सेट किया गया है
इमन पिट्स

0

यदि आप प्रत्येक व्यक्तिगत वेब पेज को चुने हुए सामग्री को लोड करना चाहते हैं और asp.net का उपयोग कर रहे हैं। बस दृश्य> साझाकरण> Layout.cshtml में शीर्षक टैग के तहत इसे पहले टैग के रूप में लागू करें

बस एक टिप

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.