26

आईई 9 में एक अजीब समस्या है जहां यह संगतता मोड में इंट्रानेट साइटें प्रस्तुत करता है।आईई 9 को संगतता मोड में इंट्रानेट साइटों को प्रतिपादित करने से रोकने के लिए कैसे करें

क्या कोई इस तरह से होने से रोकने के तरीके को जानता है?

नोट: मैं इसे एक ही उपयोगकर्ता मशीन पर रोकने के लिए कोई रास्ता नहीं ढूंढ रहा हूं, लेकिन कुछ प्रोग्रामेटिक तरीका साइट को संगतता मोड में कभी भी प्रस्तुत करने से रोकने के लिए नहीं है।

उत्तर

31

एक विस्तृत खोज के बाद, मुझे पता चला कैसे सफलतापूर्वक में संगतता मोड में प्रतिपादन से एक इंट्रानेट साइट को रोकने के लिए this blog पर IE9:

Tesmond के ब्लॉग से

वहाँ IE9 में 2 quirks कि कारण संगतता मोड में रहने के लिए कर सकते हैं प्रभाव। एक्स-यूए-संगत मेटा तत्व मुख्य अनुभाग में पहला मेटा तत्व होना चाहिए। एक्स-यूए-संगत मेटा तत्व से पहले आप कंडेनशनल आईई स्टेटमेंट नहीं कर सकते हैं। इसका मतलब है कि यदि आप पॉल आयरिश के अद्भुत HTML5 बॉयलरप्लेट का उपयोग करते हैं तो डिफ़ॉल्ट आईई 9 सेटिंग्स के साथ इंट्रानेट पर आपकी वेबसाइट संगतता मोड में प्रदर्शित होगी। आप निम्न से बॉयलरप्लेट के शुरू होने से बदलने की जरूरत है: -

<!doctype html> 
<!--[if lt IE 7]> <html class="no-js ie6 oldie" lang="en"> <![endif]--> 
<!--[if IE 7]> <html class="no-js ie7 oldie" lang="en"> <![endif]--> 
<!--[if IE 8]> <html class="no-js ie8 oldie" lang="en"> <![endif]--> 
<!--[if gt IE 8]><!--> <html class="no-js" lang="en"> <!--<![endif]--> 
<head> 
<meta charset="utf-8"> 
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> 

करने के लिए: @ novicePrgrmr के जवाब से बाद

<!doctype html> 
<html class="no-js" lang="en"> 
<head> 
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> 
<meta charset="utf-8"> 
+4

यह कितना अच्छी तरह टूटा हुआ है? मुझे यकीन नहीं है कि 'बग' की एक जोड़ी के रूप में 'quirks' की एक जोड़ी है। :) लेख को इंगित करने के लिए धन्यवाद। – jinglesthula

+0

यह IE8 के लिए काम नहीं करता है :( –

+0

मुझे आईई 7 प्रतिपादन समस्या के लिए एक समाधान मिला है, यदि आप संगतता मोड के साथ रह सकते हैं ... – Timmah

3

यह एक सरल मेटा टैग

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

एक और तरीका है यह पूरा अपनी .htaccess फाइल करने के लिए इस कोड को जोड़ना है जोड़कर किया जा सकता है! अपनी वेबसाइट के हेडर को

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

:

# ---------------------------------------------------------------------- 
# Better website experience for IE users 
# ---------------------------------------------------------------------- 

# Force the latest IE version, in various cases when it may fall back to IE7 mode 
# github.com/rails/rails/commit/123eb25#commitcomment-118920 
# Use ChromeFrame if it's installed for a better experience for the poor IE folk 

<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 "\.(js|css|gif|png|jpe?g|pdf|xml|oga|ogg|m4a|ogv|mp4|m4v|webm|svg|svgz|eot|ttf|otf|woff|ico|webp|appcache|manifest|htc|crx|oex|xpi|safariextz|vcf)$" > 
    Header unset X-UA-Compatible 
    </FilesMatch> 
</IfModule> 
+0

बस मेटा टैग जोड़ने का प्रयास किया। हालांकि समस्या को ठीक नहीं किया गया है और मेरे पास मेरी htaccess फ़ाइल तक पहुंच नहीं है। क्या आप सुनिश्चित हैं कि मेटा टैग इंट्रानेट साइटों के लिए काम करेगा? मुझे पता है कि नियमित साइटों के लिए काम करेगा, लेकिन इंट्रानेट के बारे में निश्चित नहीं है। – novicePrgrmr

+0

क्या आपने अपनी सभी अस्थायी इंटरनेट फ़ाइलों को साफ़ करने का प्रयास किया था या यहां तक ​​कि किसी अन्य पीसी पर इसका परीक्षण भी किया था? – Ruud

+0

हां, वास्तव में इसे किसी अन्य पीसी पर परीक्षण किया। मैंने थोड़ा और शोध किया, और वास्तव में आईई 9 में इंट्रानेट संगतता मोड को ओवरराइड करना संभव नहीं है। – novicePrgrmr

1

आप मुखपृष्ठ पर कोड जोड़ सकते हैं, तो आप बस इस जोड़ सकते हैं।

(आप आईई 9-रेंडरर को मजबूर करने के लिए <meta http-equiv="X-UA-Compatible" content="IE=9"> का भी उपयोग कर सकते हैं) यह आईई 9 को मानक मोड में प्रस्तुत करने के लिए मजबूर करेगा। अपने कोड के शीर्ष करने के लिए इस रखो:

एक और तरीका है एक और doctype का उपयोग है

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" 
"http://www.w3.org/TR/html4/strict.dtd"> 
+1

बस आईई-एज और आईई-9 दोनों विधियों की कोशिश की। न तो काम किया। मुझे '' 'में मेटा टैग डालना होगा? – novicePrgrmr

+0

हाँ, अंदर (नीचे) ' 'टैग। यदि यह काम नहीं कर रहा है, तो अपने डॉक्टरेट को हटाएं और इसे प्रतिस्थापित करें: '' – jAC

+0

सबसे पहले मेरे लिए काम किया, धन्यवाद – ianbroad

4

, वहाँ IE7-मोड में IE9 लोड हो रहा है इंट्रानेट के लिए एक समाधान हो रहा है । यह अभी भी संगतता मोड से चलाता है, मैंने पाया Paul Irish's HTML5 boilerplate markup करने के लिए एक मामूली संशोधन कम से कम IE9 IE9 मानकों में इंट्रानेट रेंडर करने के लिए अनुमति देता है:

<!doctype html> 
<html class="no-js" lang="en"> 
<head> 
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> 
<meta charset="utf-8"> 
</head> 
<!--[if lt IE 7]> <body class="home lt-ie9 lt-ie8 lt-ie7"> <![endif]--> 
<!--[if IE 7]>  <body class="home lt-ie9 lt-ie8"> <![endif]--> 
<!--[if IE 8]>  <body class="home lt-ie9"> <![endif]--> 
<!--[if IE 9]>  <body class="home lt-ie10"><![endif]--> 
<!--[if gt IE 9]><!--> <body class="home"> <!--<![endif]--> 

    <p>content</p> 

</body> 
</html> 

यह अभी भी मान्य HTML है, और मौजूदा आईई विशिष्ट सीएसएस अभी भी ठीक काम करना चाहिए, बशर्ते आप html.lt-ie के बजाय .lt-ie का उपयोग करके IE को लक्षित करें।

+0

हां यह काम करता है, रहस्य आपके सिर टैग के बाहर अपने सशर्त बयान रखना है। – uknowit2

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

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