2012-03-20 10 views
5

मैं एक ऐसे वेब उत्पाद पर काम कर रहा हूं जिसे इंट्रानेट साइट के रूप में होस्ट किया जा सकता है। मैं आईई 9 को आईई 9 संगतता दृश्य ब्राउज़र मोड में फिसलने से रोकने के लिए एक प्रोग्रामेटिक तरीका खोजने की कोशिश कर रहा हूं, भले ही 'संगतता दृश्य में इंट्रानेट साइट प्रदर्शित करें' हो।क्या एक्स-यू संगत http शीर्षलेख वास्तव में IE9 के लिए काम करता है?

मैं इस html पृष्ठ के साथ परीक्षण कर रहा हूँ:

<!DOCTYPE HTML> 

<html> 
    <head> 
     <meta http-equiv="X-UA-Compatible" content="IE=9" /> 
     <title>Company</title> 
    </head> 
    <body> 
    </body> 
</html> 

मैं आईआईएस config में इस डाल दिया है:

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

यहाँ की सिफारिश के रूप में: https://stackoverflow.com/a/5887546, और IE9 में जाँच की प्रतिक्रिया हेडर और देखें:

X-UA-Compatible  IE=Edge 

लेकिन पृष्ठ अभी भी ब्राउज़र को संगतता दृश्य ब्राउज़ में रखता है आर मोड।

सांत्वना पता चलता है:

HTML1202: http://intranet-site/test.html is running in Compatibility View because 'Display intranet sites in Compatibility View' is checked. 
test.html 

यहाँ एक ऐसी ही सवाल है: https://stackoverflow.com/a/3726605/1279516, जिसमें चुने हुए जवाब पर याकूब द्वारा एक टिप्पणी से पता चलता है IE9 में, वहाँ कुछ भी नहीं आप 'प्रदर्शन इंट्रानेट साइटों ओवरराइड करने के लिए क्या कर सकते हैं कि संगतता दृश्य 'सेटिंग में। हालांकि, उनकी टिप्पणी एकमात्र जगह है जिसका मैंने उल्लेख किया है। क्या कोई उस दावे की पुष्टि या इनकार कर सकता है?

और क्या मैं कुछ और कोशिश कर सकता हूं? मुझे अपने सभी उपयोगकर्ताओं के लिए 'संगतता दृश्य में प्रदर्शन इंट्रानेट साइट्स' ब्राउज़र सेटिंग को अनचेक करने के लिए हमारे उत्पाद को तैनात करने वाले सभी क्लाइंट को बताना नहीं चाहिए।

+0

आपकी साइट के लिए आईई विकास उपकरण में आप कौन सा दस्तावेज़ मोड देखते हैं? – oryol

+0

दस्तावेज़ मोड वास्तव में IE9 मानकों है। यह सुनिश्चित करता है कि प्रतिपादन मानक मोड में किया जाता है, लेकिन यह नहीं कि सभी जावास्क्रिप्ट सुविधाएं उपलब्ध हैं, सही? – jcairney

+2

नहीं, वास्तव में आपको केवल दस्तावेज़ मोड की जांच करनी चाहिए। ब्राउज़र मॉडल प्रारंभिक पैरामीटर है जो निर्धारित करता है कि दस्तावेज़ मोड की गणना कैसे की जानी चाहिए (डिफ़ॉल्ट रूप से)। इसलिए, यदि आपके पास सही दस्तावेज़ मोड है तो सब कुछ अपेक्षित के रूप में काम करना चाहिए। – oryol

उत्तर

2

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

0

मैं ने वही समस्या में भाग - पृष्ठ ठीक से IE8 में प्रस्तुत नहीं हो/9 क्योंकि संगतता दृश्य में प्रदर्शन इंट्रानेट साइटों पर था। सभी उपयोगकर्ताओं को यह अक्षम करने या समूह नीति के लिए पूछने और अपवाद जोड़ने के लिए कह रहे हैं कि मुझे यह नहीं पता कि कितने अन्य इंट्रानेट पृष्ठों की आवश्यकता है, यह विकल्प नहीं था। दस्तावेज़ मोड ठीक है X-UA-Compatible: IE=edge के लिए धन्यवाद। लेकिन मेरे पास अभी भी लेआउट मुद्दे थे।

कारण: संगतता मोड आईई को सर्वर पर एक और उपयोगकर्ता एजेंट भेजने का कारण बनता है। IE8,9 के लिए यह आईई 7 का है। मेरे कुछ एएसपी.नेट पुस्तकालय उस पर आधारित कुछ चेक करता है और आईई 7 विशिष्ट एचटीएमएल/सीएसएस प्रस्तुत करता है जिसके परिणामस्वरूप लेआउट समस्याएं होती हैं।

समाधान: सर्वर से "IE9" अगर यह कहते हैं, "IE7" पर UserAgent स्ट्रिंग को संशोधित करें। बेशक यह एक गंदे समाधान है क्योंकि सिद्धांत में वास्तविक आईई 7 क्लाइंट हो सकता है। मेरे कारण (इंट्रानेट) में मुझे पता है कि मेरे उपयोगकर्ताओं के पास केवल आईई> = 8. बदल रहा है UserAgent अनुमानित से अधिक कठिन साबित हुआ। मैंने सफलतापूर्वक this idea लागू किया - HttpWorkerRequest से उप-वर्ग प्राप्त करना और उपयोगकर्ता एजेन्ट के लिए अनुरोधों को रोकना। यह अप्रत्यक्ष रूप से request.UserAgent ओवरलोड करता है और समस्या को हल करने में मदद करता है।

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