6

में मानक मोड ट्रिगर नहीं कर रहा है, मैं एक ऐसी कंपनी के लिए काम करता हूं जहां हमारी सभी साइटें वर्तमान में एक्सएचटीएमएल 1.0 संक्रमणकालीन डॉक्टरेट का उपयोग करती हैं (हाँ मुझे पता है कि यह बहुत पुराना स्कूल है)। मैं उन सभी को एचटीएमएल 5 ड्यूट टाइप देखने के लिए बदलना चाहता हूं क्योंकि यह पीछे की तरफ संगत है। स्विच बनाने के कारणों में से एक कारण यह है कि आईई 8 में अगर किसी के पास डेवलपर टूल्स इंस्टॉल हैं तो पुराना एक्सएचटीएमएल डॉक्ट टाइप ब्राउज़र को संगतता मोड में बदल देता है और पेज को आईई 7 के रूप में प्रस्तुत करता है। इस पर पढ़ने से मुझे विश्वास था कि एचटीएमएल 5 डॉक्ट टाइप किसी भी पेज को मानक मोड में प्रस्तुत करने के लिए सेट करेगा, लेकिन यह तब नहीं हो रहा है जब मैं इसे अपने स्टेजिंग सर्वर पर परीक्षण करता हूं, यह अभी भी आईई 7 प्रतिपादन मोड में फिसल जाता है।एचटीएमएल 5 ड्यूट टाइप आईई 8

अजीब बात यह है कि अगर मैं स्थानीय रूप से एचटीएमएल 5 डॉक्टइप के साथ पेज को सहेजता हूं और इसे खोलता हूं, तो यह आईई 8 मानकों मोड में प्रतिपादन कर रहा है। आईई 7 प्रतिपादन संगतता में गिरावट के कारण कुछ और होना चाहिए। कोई सुझाव कि यह क्या हो सकता है?

नीचे परीक्षण पृष्ठ के सिर मैं को देखकर किया गया है है:

<!DOCTYPE html > 

<html xmlns="http://www.w3.org/1999/xhtml" xmlns:og="http://opengraphprotocol.org/schema/" xmlns:fb="http://www.facebook.com/2008/fbml"> 
<head> 

    <title>Burton - Mens Clothing - Mens Fashion - Burton Menswear</title> 

    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 

    <meta name="description" content="Burton is one of the UK's leading men's clothing &amp; fashion retailers, with a range of men's clothing designed to make you look &amp; feel good. Find formal &amp; casual clothes &amp; accessories for men online at Burton menswear"/> 
    <meta name="keywords" content="menswear, clothes for men, clothing for men, men clothes, men's fashion, men's wear, men's clothing online, men's clothes online, men's clothes shop, burton men's, burton menswear, burton uk, burton"/> 

    <script type="text/javascript">document.getElementsByTagName('html')[0].className = 'js';</script> 

    <link rel="stylesheet" type="text/css" href="http://eu.burton-menswear.com/wcsstore/ConsumerDirectStorefrontAssetStore/images/colors/color2/v3/css/screen.css" /> 
    <link rel="stylesheet" type="text/css" href="http://eu.burton-menswear.com/wcsstore/ConsumerDirectStorefrontAssetStore/images/colors/color2/v3/css/print.css" media="print"/> 

    <link rel="stylesheet" type="text/css" href="http://eu.burton-menswear.com/wcsstore/ConsumerDirectStorefrontAssetStore/images/colors/color2/v3/css/brand.css" /> 

    <!--[if lt IE 8]> 
    <link rel="stylesheet" href="http://eu.burton-menswear.com/wcsstore/ConsumerDirectStorefrontAssetStore/images/colors/color2/v3/css/ie.css" type="text/css" media="screen, projection"> 
    <![endif]--> 

    <meta http-equiv="content-language" content="en-gb" /> 

    <link rel="shortcut icon" type="image/x-icon" href="http://eu.burton-menswear.com/favicon.ico" /> 
    <link rel="search" type="application/opensearchdescription+xml" title="burton.co.uk Search" href="http://eu.burton-menswear.com/burton-search.xml"/> 
    <!-- Start Summit Tag --> 
    <script type="text/javascript"> 
    var __stormJs = "t1.stormiq.com/dcv4/jslib/3286_D92B7532_4A18_46A8_864A_5FDF1DF25844.js"; 
</script> 
    <script type="text/javascript" src="http://eu.burton-menswear.com/javascript/track.js"></script> 
    <!-- End Summit Tag --> 
    <!-- Start QuBit Tag --> 
    <script src=//d3c3cq33003psk.cloudfront.net/opentag-31935-42109.js async defer></script> 
    <!-- End QuBit Tag --> 
    <link type="text/css" rel="stylesheet" href="http://reviews.br.wcstage.arcadiagroup.ltd.uk/bvstaging/static/6028-en_gb/bazaarvoice.css" ></link> 

</head> 
+2

अंधेरे में स्टैब .. लेकिन, इसे अपने '' में जोड़ने का प्रयास करें: 'मेटा http-equiv =" एक्स-UA-संगत "सामग्री =" आईई = एज, क्रोम = 1 ">' – Labu

+0

'xmlns = "http://www.w3.org/1999/xhtml" समस्या होनी चाहिए। – xiaoyi

उत्तर

16

वहाँ आईई 8 में सेटिंग्स है कि पृष्ठों संगतता मोड में रेंडर करने के लिए पैदा कर सकता है की एक जोड़ी है, पृष्ठ के HTML सामग्री की परवाह किए बिना या HTTP हेडर:

  1. पृष्ठ> संगतता दृश्य सेटिंग

    • हैं "संगतता दृश्य में इंट्रानेट साइट्स प्रदर्शित करें" चेक किया गया है, तो आईई स्थानीय नेटवर्क पर संगतता दृश्य में सभी साइटों को प्रस्तुत करेगा। (यह मेरे विकास के दौरान कुछ बार हुआ है।)

    • यदि "माइक्रोसॉफ्ट से अद्यतन वेबसाइट सूचियां शामिल करें" चेक किया गया है, तो IE माइक्रोसॉफ्ट से वेबसाइटों की एक सूची डाउनलोड करेगा और उन्हें सभी को संगतता दृश्य में प्रस्तुत करेगा।

    • यदि "सभी वेबसाइटों को संगतता दृश्य में प्रदर्शित करें" चेक किया गया है, तो, ठीक है, आप अनुमान लगा सकते हैं कि क्या होता है।

  2. Tools> Internet Options> उन्नत> ब्राउज़िंग

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

  3. और अंत में, यदि आप एक पेज पर जाकर पृष्ठ पर क्लिक करें> संगतता दृश्य (या पता बार में संगतता दृश्य आइकन पर क्लिक करें), तो उस पृष्ठ अनुकूलता को ध्यान में रखते रेंडर किया जाएगा ।

तो, हालांकि यह वहाँ में X-UA-Compatible डालने और एचटीएमएल 5 के समान एक doctype का उपयोग कर के लायक है (ताकि अपने इरादों स्पष्ट कर रहे हैं), हमेशा पहले इन सेटिंग्स की जाँच का परीक्षण कर रहे हैं।

+1

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

+0

@ElGuapo: आपका स्वागत है - मुझे इस बार कुछ बार पकड़ा गया है, क्योंकि टेस्टर्स के साथ मैंने काम किया है। यह थोड़ा सा गड़बड़ है कि आईई 8 में "संगतता दृश्य सेटिंग्स" इंटरफेस है जिसमें * सभी संगतता दृश्य सेटिंग्स नहीं हैं, लेकिन इंट्रानेट एक ऐसा लगता है जो आमतौर पर लोगों को भ्रमण करता है, और यह एक समझने योग्य डिफ़ॉल्ट है। –

4

दोनों एक्सएचटीएमएल 1.0 संक्रमणकालीन सिद्धांत (जब यूआरएल के साथ spec द्वारा उपयोग किया जाता है) और <!doctype html> IE में "मानक मोड" ट्रिगर करें। यदि ऐसा नहीं होता है, तो ऐसे कई कारण हैं जिनके पास शायद डॉक्टरेट परिवर्तन से कोई लेना-देना नहीं है (और यदि अतिरिक्त जानकारी, जैसे यूआरएल उपलब्ध है, तो इसका विश्लेषण किया जा सकता है); में देखें 0ct38 के साथ ब्राउज़र मोड सक्रिय करना।

<!doctype html> में बदलना व्यर्थ और संभावित समस्या है, जब तक कि आप वास्तव में मार्कअप को नहीं बदलते। सत्यापन में, डक्ट टाइप का उपयोग करने का दूसरा कारण कौन सा है, यह एक्सएचटीएमएल 1.0 में मान्य संरचनाओं के बारे में एक पूरी तरह से अलग विश्लेषण और अक्सर त्रुटि संदेश का कारण बनता है।

+0

हाय जुक्का, एचटीएमएल 5 में डक्ट टाइप को बदलने के लिए समझदार चीज की तरह लगता है क्योंकि हम अपनी साइट्स (विशेष रूप से वीडियो) पर बहुत अधिक HTML5 सामान करना शुरू कर रहे हैं - और क्यों नहीं कि यह पीछे की तरफ संगत है। यदि मैं डॉक्टरेट बदलता हूं तो मुझे किस संभावित मुद्दे पर आने की संभावना है? –

+0

@ElGuapo: इसका मतलब यह होगा कि वैधकर्ता (उदा। Http://validator.w3.org/) आपके कोड को HTML5 के रूप में मान्य करेगा। हालांकि एचटीएमएल 5 (जहां तक ​​संभव हो) वेब ब्राउज़र के साथ पिछड़ा-संगत है, यह इस अर्थ में पिछड़ा नहीं है कि सभी HTML4 वैध HTML5 होंगे। (देखें http://www.w3.org/TR/html5-diff/)। बेशक, आप हमेशा इसे HTML 4 के रूप में मान्य कर सकते हैं, या अगर आप चाहें तो सत्यापन पूरी तरह से अनदेखा कर सकते हैं। –

+0

हाय पॉल, धन्यवाद। मुझे लगता है कि यह धीरे-धीरे कोड को फिर से फैक्टर करने का मामला है, जो इसे एक करने के बजाय एचटीएमएल 5 होने के बजाय है। दुर्भाग्यवश मेरे पास साइट पर बहुत सारे मार्कअप तक पहुंच नहीं है क्योंकि यह आईबीएम के साथ बंद है जो हमारे सभी बैकएंड समर्थन प्रदान करता है। कोड को मान्य करने के संबंध में, एक आदर्श दुनिया में हमारी सभी साइटों पर सभी पृष्ठ मान्य होंगे, लेकिन मुझे इस तथ्य के बारे में पता है कि वे नहीं हैं और मेरे पास सभी मुद्दों को हल करने के लिए समर्पित समय नहीं है। तो जिन पृष्ठों को मान्य नहीं किया जा रहा है वह दुनिया का अंत नहीं है। –

8

मुझे यकीन है कि अगर यह मदद करता है नहीं कर रहा हूँ, लेकिन IE9 में, आप का उपयोग करना चाहिए:

<!DOCTYPE html> 

और निम्न मेटा टैग:

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

इन दोनों में से संयोजनों का परीक्षण करने के बाद, यहां मैंने पाया है:

  • कोई डॉक्टरेट या मेटा टैग:
    असामान्य मोड, IE इंजन = 5

  • Doctype केवल:
    मानक मोड, IE इंजन = 7

  • Doctype और मेटा टैग
    मानक मोड, IE इंजन = 9

  • मेटा टैग केवल
    मानक मोड, आईई इंजन = 9

मोड प्रकार और इंजन detemine कैसे करें:

  • document.compatMode: CSS1Compat = मानकों मोड, अन्यथा आप quirks मोड

  • document.documentMode में कर रहे हैं: रिटर्न जो इंजन आईई दस्तावेज़

  • रेंडर करने के लिए उपयोग कर रहा है

नोट्स:

  • आमतौर पर डॉक्ट टाइप आपकी फ़ाइल में पहली पंक्ति होनी चाहिए। मुझे यकीन नहीं है, लेकिन मुझे लगता है कि एक एक्सएमएल टैग इससे पहले हो सकता है। कुछ और पहले आती है अगर यह अपने अपने doctype घोषणा टूटने की संभावना:
  • मेटा टैग <HEAD>
  • में रखा जाना चाहिए कि आपकी पोस्ट 25 दिन पुरानी है, इसलिए मुझे लगता है कि आप एक समाधान है। फिर भी, मुझे यकीन नहीं है कि ये आईई 9 सेटिंग्स आपकी समस्या के लिए उपयुक्त हैं या नहीं। आप मैं एक डॉक प्रकार के बिना इसे उपयोग करने की अनुशंसा नहीं होगा, window.document.compatMode और window.document.documentMode जांच करने के लिए निर्धारित करने के लिए अगर वे <meta http-equiv="X-UA-Compatible" content="IE=8">
  • हालांकि यह केवल मेटा टैग का उपयोग करना संभव है करने के लिए
  • बदलें मेटा टैग IE8 तहत व्यवहार्य हैं होगा। जैसा कि इस एक्सएमएल, सीएसएस, और स्क्रिप्ट

के साथ समस्याओं के कारण हो सकता है कि मैं इस पता लगाने की कोशिश और इस लेख पोस्टिंग इसलिए मुझे आशा है कि किसी को वास्तव में मेरे शोध से बाहर कुछ का उपयोग हो जाता है घंटे बिताए। स्रोत आपके साथ हो सकता है ...

+2

आप '<मेटा http-equiv =" X-UA-compatible "सामग्री =" IE = 9 ">' के बजाय एक HTTP शीर्षलेख का उपयोग कर सकते हैं, जो एक अच्छा विचार हो सकता है यदि आप इसे कर सकते हैं, जैसा कि मेटा टैग और सशर्त टिप्पणियां एक-दूसरे के लिए समस्याएं पैदा कर सकती हैं] (https://github.com/h5bp/html5-boilerplate/issues/1187)। –