Internet Explorer 11 अक्षम "संगतता इंट्रानेट साइटों को संगतता दृश्य में" मेटा टैग के माध्यम से काम नहीं कर रहा है


100

मैं 6 महीने से इंट्रानेट वेबसाइट पर काम कर रहा हूं। मैं doctypeइंटरनेट एक्सप्लोरर को पुराने ब्राउज़र संस्करण का अनुकरण नहीं करने के लिए मजबूर करने के लिए नीचे HTML5 और एज संगतता मेटा टैग का उपयोग कर रहा हूं , और यह ठीक काम किया है।

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8" />
    <title>My title</title>
    <meta http-equiv="X-UA-Compatible" content="IE=EDGE" />
</head>
<body>
</body>
</html>

इसका कारण मैं इसे इस तरह से कर रहा था क्योंकि मैं जिस जगह काम करता हूं वह सभी इंट्रानेट साइटों के लिए संगतता दृश्य को सक्षम करने के लिए नीति सेटिंग का उपयोग करता है, और EDGEसेटिंग का उपयोग करने वाले इस दृष्टिकोण ने इंटरनेट एक्सप्लोरर 9 में काम किया है।

इंट्रानेट साइट संगतता दृश्य सेटिंग

एक महीने पहले मुझे इंटरनेट एक्सप्लोरर 11 में अपग्रेड किया गया था और इस साइट ने अभी भी उम्मीद के मुताबिक काम किया है।

आज यह उम्मीद के मुताबिक काम करना बंद कर देता है, मैं निश्चित रूप से नहीं कह सकता, लेकिन मुझे लगता है कि संगतता नीति को मजबूर करने वाली नीति IE11 में सक्षम नहीं थी और अब यह है ... और चूंकि यह सक्षम किया गया है मेटा टैग अब सक्षम नहीं है उम्मीद की जा रही है, और यह साइट एंटरप्राइज मोड में चलाई जा रही है जो IE8 का अनुकरण करती है।

क्या किसी को पता है कि इसे कैसे ठीक किया जाए और IE11 को इंट्रानेट साइट पर उपयोग करने के लिए मजबूर किया जाए जब संगतता "एंटरप्राइज मोड" को लागू किया जा रहा हो? और ब्राउज़र सेटिंग्स के माध्यम से अक्षम नहीं किया जा सकता है?

संपादित करें

मैंने अपने web.config में एक कस्टम हेडर जोड़ने की कोशिश की है जैसा कि इस उत्तर में बताया गया है https://stackoverflow.com/a/18257208/98706

और यह मेरे लिए काम नहीं करता था मुझे अभी भी डेवलपर टूलबार कंसोल में नीचे का संदेश मिलता है

HTML1122: Internet Explorer is running in Enterprise Mode emulating IE8.

यह ऐसा है जैसे कि संस्करण 8 को edgeइस इंट्रानेट संगतता सेटिंग IE11 में सक्षम होने पर इलाज किया जा रहा है ।

यह पोस्ट: https://www.leapinggorilla.com/Blog/Read/1016/ie-ate-my-css---diseable-compatability-mode यह अच्छी तरह से समझाता है, मैंने अभी तक कोड के माध्यम से इस हेडर को सेट करने की कोशिश नहीं की है और हमारे उपयोगकर्ताओं के पास अपनी ब्राउज़र सेटिंग्स बदलने की पहुँच नहीं है .. अन्य परिवर्तनों में से किसी ने भी अभी तक काम नहीं किया है।

अपडेट करें

कृपया इस पोस्ट पर मेरी टिप्पणी देखें कि एंटरप्राइज़ मोड और संगतता मोड में क्या अंतर है, क्योंकि यह महत्वपूर्ण है।


एंटरप्राइज़ मोड संगतता दृश्य से अलग है, कृपया इसे अक्षम करने के तरीकों के लिए stackoverflow.com/a/26463309/98706 देखें, लेकिन मेरे मामले में यह इसे बंद करने में सक्षम होने के रूप में सरल नहीं है, मैं इसे विशिष्ट अंतरंग साइटों के लिए ओवरराइड करना चाहता था मेटा टैग का उपयोग करना लेकिन यह काम नहीं आया, मैंने फिर से कोशिश नहीं की क्योंकि हमारी साइट अब एक श्वेतसूची में हैं।
प्राइसी

जवाबों:


93

सुनिश्चित करो:

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

<meta>आपके पेज पर पहला टैग है, अन्यथा IE इसका सम्मान नहीं कर सकता है।

वैकल्पिक रूप से, समस्या यह हो सकती है कि IE इस वेबसाइट के लिए एंटरप्राइज मोड का उपयोग कर रहा है :

  • आपके प्रश्न में उल्लेख है कि कंसोल दिखाता है: HTML1122: Internet Explorer is running in Enterprise Mode emulating IE8.
  • यदि ऐसा है, तो आपको IE में टूल मेनू से एंटरप्राइज़ मोड (या इस तरह ) को अक्षम करने या उस वेबसाइट के लिए इसे बंद करने की आवश्यकता हो सकती है ।
  • हालाँकि, एंटरप्राइज़ मोड को X-UA- कम्पैटिबल टैग द्वारा सिद्धांत रूप में ओवरराइड किया जाना चाहिए , लेकिन IE में बग हो सकता है ...

हाँ, मैं पहले से ही ऐसा कर चुका हूँ, दुर्भाग्य से यह काम नहीं किया :(
Pricey

यह हो सकता है कि एंटरप्राइज मोड उस वेबसाइट के लिए है (आपके प्रश्न के आधार पर) ... मैंने अपना जवाब अपडेट कर दिया है, मुझे बताएं कि क्या मदद करता है
गौरैया

2
"एंटरप्राइज मोड" और "कम्पैटिबिलिटी व्यू" अलग-अलग हैं, हालांकि समान हैं। भले ही "संगतता दृश्य में इंट्रानेट साइटों को प्रदर्शित करें" को टिक किया गया हो, एक्स-यूए-संगत टैग को इसे ओवरराइड करना चाहिए। हालाँकि एंटरप्राइज मोड ओवरराइड कर सकता है ... क्या आपको अपनी साइट पर एंटरप्राइज मोड आइकन ( media.askvg.com/articles/images5/… ) दिखाई देता है?
गौरैया

1
इसके अलावा अगर आप F12 दबाते हैं और इम्यूलेशन टैब को देखते हैं तो यह क्या कहता है? यह आपको बताना चाहिए कि यह दस्तावेज़ मोड का उपयोग क्यों कर रहा है। मुझे लगता है कि आप एंटरप्राइज मोड मार रहे हैं, संगतता दृश्य नहीं।
गौरैया

19
ऐसा है! @ # $ कष्टप्रद, दुनिया भर में सैकड़ों हजारों वेब डेवलपर्स को बर्बाद कर रहा है।
सैम वाटकिंस

19

यह समस्या आम तौर पर वेबसाइट / इंट्रानेट URL में से एक में होने के कारण होती है:

  • संगतता मोड सूची
  • Internet Explorer इंट्रानेट ज़ोन
    ( संगतता दृश्य सेटिंग में प्रदर्शन इंट्रानेट साइट के साथ )
  • एंटरप्राइज मोड सूची

कॉर्पोरेट नेटवर्क पर, इन संगतता दृश्य सेटिंग्स को अक्सर समूह नीति के माध्यम से केंद्रीय रूप से नियंत्रित किया जाता है । आपके मामले में, एंटरप्राइज़ मोड अपराधी प्रतीत होता है।

IE 11 एंटरप्राइज मोड

दुर्भाग्यवश META की सेटिंग इसको X-UA-Compatible ओवरराइड नहीं करेगी

एंड-यूजर्स के लिए

कभी-कभी एंड-उपयोगकर्ताओं के लिए इसे ओवरराइड करने का एकमात्र तरीका एफ 12 को दबाकर और इम्यूशन टैब के तहत दस्तावेज़ मोड को बदलना है । हालाँकि यह सेटिंग स्थायी नहीं है और डेवलपर टूल बंद होने के बाद वापस आ सकती है।

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

इंट्रानेट ज़ोन से संबंधित डोमेन की सूची देखने के लिए, यहां जाएं:

उपकरण -> इंटरनेट विकल्प -> सुरक्षा -> साइटें -> उन्नत

यदि सूची में आपका उपडोमेन है और इसे बाहर निकाला गया है, तो आप तब तक संगतता दृश्य को ओवरराइड नहीं कर पाएंगे जब तक कि आपका नेटवर्क व्यवस्थापक इसे अनुमति नहीं देता।

समूह नीति में संगतता दृश्य सेटिंग्स को बदलने की अनुमति देने के लिए आपको वास्तव में अपने नेटवर्क व्यवस्थापक से संपर्क करना होगा।

नेटवर्क एडमिंस के लिए

डेवलपर टूल ओपन (F12) के साथ वेबसाइट को लोड करना अक्सर इस कारण की रिपोर्ट करेगा कि IE पुराने मोड में स्विच कर रहा है।

ऊपर उल्लिखित सभी 3 सेटिंग्स को आमतौर पर समूह नीति के माध्यम से नियंत्रित किया जाता है, हालांकि कभी-कभी उपयोगकर्ता मशीनों पर ओवरराइड किया जा सकता है।

यदि एंटरप्राइज़ मोड समस्या है (जैसा कि मूल पोस्टर के लिए मामला प्रतीत होता है), निम्नलिखित दो लेख सहायक हो सकते हैं:


मैंने आपके महान उत्तर का विस्तार कुछ और विवरणों के साथ किया जो मैंने हाल के शोध के दौरान खोजे थे। मुझे आशा है कि यह ठीक है।
साइमन ईस्ट

8

जो ASP.NET MVC प्रोजेक्ट का निर्माण कर रहे हैं, उनके लिए यह सुनिश्चित करें कि आप जोड़ें:

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

अपने लेआउट (टेम्प्लेट) पृष्ठ में टैग करें। मैंने केवल दो घंटे डिबगिंग और ट्विकिंग में बिताए, केवल यह महसूस करने के लिए कि मैंने केवल उस मेटा टैग को अपने बाल पृष्ठों में जोड़ा है। जैसे ही मैंने इसे अपने लेआउट पृष्ठ पर जोड़ा, ब्राउज़र पूरी तरह से EDGE मोड में लोड हो गया।


मेरी समस्या IE11 में एक नए एंटरप्राइज मोड के साथ करने की थी जो ब्राउज़र को IE8 का अनुकरण करने के लिए मजबूर करता है। यह संगतता मोड के समान नहीं है, जो कि इस मेटा टैग का उपयोग ओवरराइड करने के लिए किया जाता है। मैं इसका सही इस्तेमाल कर रहा था।
प्राइस जू

मेरी टिप्पणी दूसरों को उन्हीं लक्षणों की सहायता करने के लिए थी, जो ASP.NET MVC में साइट बना रहे हैं। मैं आपको विशेष रूप से संबोधित नहीं कर रहा था।
जेसन मार्सेल

मेटा टैग काम करेगा (गैरकानूनी मोड के मुद्दों के लिए, न कि एंटरप्राइज़ मोड के मुद्दों के लिए) गैर .NET / MVC साइटों के लिए भी btw, यह ASP.NET के लिए विशिष्ट नहीं है
दान हैरिस

4

चिह्नित उत्तर सही है। हालाँकि, Pricey, आपको अपने AD और डेस्कटॉप व्यवस्थापक समूहों के साथ इस पर चलना चाहिए। वे IE11 एंटरप्राइज़ मोड साइट सूची का दुरुपयोग कर रहे हैं। Microsoft का इरादा किसी संगठन के भीतर सभी इंट्रानेट साइटों के लिए इसका उपयोग करने का नहीं है। यह मौजूदा "सभी इंट्रानेट साइटों को संगतता मोड में प्रस्तुत करना" होगा जो कि दुनिया भर में कॉर्पोरेट वेबसाइट उन्नति का प्रतिबंध है।

इसे "ब्लैक लिस्ट" के रूप में लागू करने का मतलब है, उन मुट्ठी भर साइटों के साथ, जिन्हें वास्तव में एंटरप्राइज़ मोड सूची में सूचीबद्ध विरासत ब्राउज़र मोड की आवश्यकता होती है। आपके संगठन की अन्य सभी साइटें तब एज का उपयोग करने के लिए मुक्त हो जाती हैं। आपके संगठन के लोग जिन्होंने इसे सभी इंट्रानेट साइटों के साथ लागू किया है, के साथ शुरू करने के लिए पूरी तरह से गलत समझा है कि एंटरप्राइज मोड को कैसे लागू किया जाना है।


हाँ, वे निश्चित रूप से ऐसा कर रहे होंगे, लेकिन मैं दुर्भाग्य से इस मामले में कुछ नहीं कहता, लेकिन यह उनके साथ उठाया गया है।
प्राइसी

1

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

IE पूरी तरह से योग्य पते के बिना वेबसाइटों को मानता है इंट्रानेट, और तदनुसार कार्य करता है। इस बात को ध्यान में रखते हुए कि मैंने केवल पूरी तरह से योग्य पते को सुनने के लिए IIS में बाइंडिंग को बदल दिया, फिर एक डमी वेबसाइट की स्थापना की, जो अयोग्य पते के लिए सुनी गई थी। दूसरा एक पूरी तरह से योग्य पते पर सभी ट्रैफ़िक को पुनर्निर्देशित करता है, जिससे IE का मानना ​​है कि यह एक बाहरी साइट है। साइट इंट्रानेट साइट्स बॉक्स पर संगतता मोड के साथ या उसके बिना सही ढंग से प्रस्तुत करती है।


देखें: अगर आपके पास web.config एक्सेस है, तो stackoverflow.com/questions/2518256/…
फॉन्टोफिलिक 17

मैंने उस प्रश्न को पहले देखा था, लेकिन मुझे लगता है कि मैंने मेटा लाइन के लिए HTTP हेडर लाइन को गलत समझा और सोचा कि मैंने पहले ही कोशिश कर ली है। यह ठीक है कि मैंने एक बार काम किया। मुझे इसे वापस इंगित करने के लिए धन्यवाद।
माइक एंडरसन

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

लगता है कि आप उसी सड़क से नीचे चले गए जैसे मैंने किया था। 2 चीजें हैं जो मुझे करनी थीं। 1 पृष्ठ के META टैग में EDGE सेटिंग थी। आप इसे web.config में करने में सक्षम हो सकते हैं (या नहीं; मुझे नहीं पता) लेकिन मैंने इसे साइट मास्टर पेज पर किया था। अन्य कस्टम HTTP हैडर को web.config में जोड़ रहा था।
माइक एंडरसन

1

यह कुछ अच्छी जानकारी के साथ एक पुरानी समस्या है। लेकिन जो मैंने अभी पाया, वह यह है कि FQDN का उपयोग IE 9 - 11. उदाहरण में कम्पोजिट मोड को बंद कर देता है। मुझे
http: // lrmstst01: 8080 / JavaWeb / login.do के साथ कॉम्पिटिटर
की समस्या है, लेकिन
http://lrmstst01.mydomain.int:8080/JavaWeb/login.do के साथ समस्याएं चली जाती हैं
। यह एक हिस्सा है। हमारा आंतरिक डोमेन


वे लिंक अमान्य हैं। वे केवल एक कंप्यूटर नाम के साथ एक यूआरएल के एक उदाहरण के रूप में उपयोग कर रहे हैं बनाम एक FQDN के साथ।
डीन पी

2
प्रो टिप: Example.com केवल इस उद्देश्य के लिए मौजूद है
बेसिक

यह अभी भी एक समस्या है और यह टिप्पणी समाधान के लिए कुछ भी नहीं जोड़ती है।
डायना

0

इसे किसी विश्वसनीय साइट सूची या स्थानीय सेटिंग में जोड़कर विश्वसनीय साइट ज़ोन में ले जाएं। यह इसे इंट्रानेट ज़ोन से बाहर ले जाएगा और कम्पेटिबल में प्रस्तुत नहीं किया जाएगा। राय।


पीएस मुझे पता है कि यह काम करता है क्योंकि यह हम अपनी कंपनी में नए ब्राउज़र आधारित उत्पादों के लिए कर रहे हैं जो एक्स-यूए टैग के साथ नहीं लिखे गए हैं ताकि वे इसे जिस तरह से प्रस्तुत करना चाहते हैं उसे लागू कर सकें।
ग्रेग सी।

यह देखते हुए कि यह संभव है कि एक कंपनी व्यापक रूप से आपके उत्तर को हर उपयोगकर्ता की मशीन पर लागू करे, जो शायद ही आदर्श हो।
मैट

0

IIS साइटों के लिए web.config फ़ाइल में नीचे गुण जोड़ें। इसने IE11 में मेरे इंट्रानेट पर मेरे लिए काम किया।

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

कृपया टिकट पर मेरा अपडेट देखें, एंटरप्राइज मोड और कम्पैटिबिलिटी मोड 2 अलग-अलग चीजें हैं
Pricey

0

मैंने इंट्रानेट होस्ट करने वाले सर्वर के FQDN को उपयोगकर्ता को पुनर्निर्देशित करके इस मुद्दे को हल किया।

IE शायद "इंट्रानेट" साइटों का पता लगाने के लिए दुनिया के सबसे खराब एल्गोरिदम का उपयोग करता है ... वास्तव में, server.domain.tld को निर्दिष्ट करते हुए मेरे लिए समस्या हल करता है।

हां, आपने पढ़ा कि सही तरीके से, IE निजी आईपी पते द्वारा इंट्रानेट साइटों का पता लगाता है, जैसे कि टीसीपी / आईपी के बारे में सुना है, जो किसी भी देवता के URL के "होस्ट" भाग द्वारा करेगा, यदि उसके पास कोई डोमेन हिस्सा नहीं है, तो उसे अवश्य करना चाहिए आंतरिक हो।

IE देवों को जानने के लिए डरावना सबसे बुनियादी टीसीपी / आईपी अवधारणाओं को नहीं समझते हैं।

ध्यान दें कि यह एक BIG उद्यम ग्राहक पर था, उन्हें आपके लिए GPO बदलने के लिए प्राप्त करना आल्प्स पूर्व को 4 मीटर से स्थानांतरित करने की कोशिश करने जैसा है, ऐसा नहीं होने वाला।


IE शायद एक DNS लुकअप करता है और उससे आईपी जानता है। जैसा कि यह एमएस है, यह शायद एडी कर सकता है, लेकिन डीएनएस अधिक समझ में आता है।
21

@SQLDBA नेगेटिव, यदि आप IP निर्दिष्ट करते हैं, तो 10.0.0.1 कहते हैं, होस्ट को "इंट्रानेट" साइट के रूप में नहीं पाया गया है ... DNS से ​​कोई लेना-देना नहीं है, AD से आपका क्या मतलब है? क्या आपका मतलब है कि यह AD से जुड़ता है और वहां मेजबान को देखता है? कोई मतलब नहीं है, यह ऐसा क्यों करेगा? तो फिर, वे एक कारण ™ के लिए Microsoft हैं।
thecarpy

0

क्या यह मूल्य के लिए, मैं IE11 में भी मुद्दा था:

  • मैं एंटरप्राइज मोड में नहीं था ।
  • "संगतता दृश्य में इंट्रानेट साइटें" की जाँच की गई थी।
  • मैं सभी के लिए किया था <!DOCTYPE html>और IE=Edgeसेटिंग प्रश्न में आपका उल्लेख
  • मेटा हैडर वास्तव में 1 तत्व था <head>तत्व

थोड़ी देर बाद, मुझे पता चला कि:

  • उपयोगकर्ता एजेंट हैडर को सर्वर पर भेजा गया था IE7 लेकिन ...
  • जावास्क्रिप्ट मूल्य IE11 था!

HTTP हैडर :

User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 10.0; WOW64; Trident/7.0; .NET4.0C; .NET4.0E) परंतु

जावास्क्रिप्ट :

window.navigator.userAgent === 'Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; .NET4.0C; .NET4.0E; rv:11.0) like Gecko'

इसलिए मैंने क्लाइंट की तरफ से चेक करना समाप्त कर दिया।

और BTW, इस बीच, उपयोगकर्ता एजेंट की जाँच अब अनुशंसित नहीं है। Https://developer.mozilla.org/en-US/docs/Web/HTTP/Browser_detection_using_the_user_agent देखें (लेकिन एक अच्छा मामला हो सकता है)

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