दिलचस्प पोस्ट
कैसे आईओएस सिस्टम ध्वनि को निष्क्रिय करने के लिए एक पैरामीटर में डॉट के साथ मार्गों से मिलान करने में असफल क्यों होते हैं? टेबलदृश्य: दृश्यमान पंक्तियों की संख्या समायोजित करें JSON वाक्यविन्यास किसी ऑब्जेक्ट में डुप्लिकेट की अनुमति देता है? मैं WinForms एप्लिकेशन को कमांड लाइन आर्ग्यूमेंट कैसे पारित करूं? मैं एक प्रतिलिपि में फ़ाइल को कंसोल आउटपुट कैसे गूंजता हूं और भेजूं? PyQt में QThread का उपयोग करने के लिए सही तरीके का उदाहरण? सी में मेरी सरणी के आकार को मैं कैसे निर्धारित करूं? ढेर पर बनाई गई वस्तु को रोकने के लिए कैसे? पूरे शब्द खोज और प्रतिस्थापित करें Cmd.exe पर यूटीएफ -16 क्या मूल्य से पारित किया गया एरे या जावा में संदर्भ द्वारा पारित किया गया है? सॉफ्टवेयर में एसएसई 4.2 के सीआरसी 32 सी को लागू करना क्या मैं अन्य फ़ॉर्म टैग में नेस्ट फॉर्म टैग कर सकता हूं? क्यों जावा सुरक्षा प्रबंधक न तो नया थ्रेड बनाने से मना करता है और न ही इसे शुरू कर रहा है?

वेब ब्राज़र को IE9 में मानकों को कैसे नियंत्रित करें?

मैं इंटरनेट एक्सप्लोरर (9) में कुछ HTML प्रदर्शित करने के लिए स्वचालन (यानी COM स्वचालन) का उपयोग कर रहा हूं:

ie = CoInternetExplorer.Create; ie.Navigate2("about:blank"); webDocument = ie.Document; webDocument.Write(szSourceHTML); webDocument.Close(); ie.Visible = True; 

इंटरनेट एक्सप्लोरर दिखाई देता है, जो मेरे एचटीएमएल को दिखाता है, जो कि शुरू होता है:

 <!DOCTYPE html> <HTML> <HEAD> ... 

नोट: html5 मानक-मोड ऑप्ट-इन डॉटस्पे html

सिवाय इसके कि दस्तावेज I 9 मानक मोड में नहीं है; यह यानी 8 मानक मोड में है: वैकल्पिक शब्द


अगर मैं पहले अपने कंप्यूटर में html को सहेजता हूं:

वैकल्पिक शब्द

और फिर उस HTML दस्तावेज़ को देखें, IE मानक मोड में डाल दिया गया है:

वैकल्पिक शब्द

मेरा प्रश्न यह है कि क्या ब्राउज़र को मानक मोड में फेंकने के लिए मेरे SpawnIEWithSource(String html) फ़ंक्शन को अपडेट किया जाता है?

 void SpawnIEWithSource(String html) { Variant ie = CoInternetExplorer.Create(); ie.Navigate2("about:blank"); webDocument = ie.Document; webDocument.Write(html); webDocument.Close(); ie.Visible = true; } 

संपादित करें: एक और अधिक वर्बोस, कम समझ या पढ़ा जाने योग्य कोड नमूना, जो कि आगे के प्रश्न को मदद नहीं कर सकता:

 IWebBrowser2 ie; CoCreateInstance(CLASS_InternetExplorer, null, CLSCTX_INPROC_SERVER | CLSCTX_LOCAL_SERVER, IID_WebBrowser2, ie); ie.AddRef(); ie.Navigate2("about:blank"); IHtmlDocument doc; dispDoc = ie.Document; dispDoc.AddRef(); dispDoc.QueryInterface(IHTMLDocument2, doc); dispDoc.Release() doc.Write(html); doc.Close(); doc.Release(); ie.Visible = true; ie.Release(); 

अद्यतन करें

टिप्पणीकर्ता ने आईब्लॉग प्रविष्टि पर पूछा ब्राउज़र मोड बनाम डॉक मोड के साथ परीक्षण साइट :

क्या हम एक विवरण प्राप्त कर सकते हैं कि कैसे दस्तावेज़ मोड को निर्धारित किया जाता है जब HTML सामग्री एक एम्बेडेड वेब नियंत्रण के भीतर होती है? लगता है कि दस्तावेज मोड अलग तरह से चुना है – शायद संगतता के कारणों के लिए?

मार्कसिइल [एमएसएफटी] ने जवाब दिया:

@ थॉमस: उस प्रश्न को ऊपर उठाने के लिए धन्यवाद वेबब्रोजर नियंत्रण डीओसी मोड को उसी तरीके से निर्धारित करता है जिस तरह आईई करता है क्योंकि इसमें एक ही वेब प्लेटफ़ॉर्म है (उदाहरण के लिए आईई और वेबब्रोजर कंट्रोल होस्ट्स में एक साझा एमएसपीएल डीएलएल है)। वेबब्राइसर नियंत्रण संगतता दृश्य ब्राउज़र मोड में डिफ़ॉल्ट होता है, जिसका अर्थ है कि डिफ़ॉल्ट डॉक मोड IE7 है। यहां एक ब्लॉग पोस्ट है जिसमें इस पर अधिक विस्तार है: blogs.msdn.com/…/more-ie8-extensibility-improvements.aspx

किस थॉमस ने जवाब दिया:

@ मार्कसिल (पुन: वेबब्रोजर कंट्रोल)

WebControl के लिए दस्तावेज़ मोड का चयन करने के लिए रजिस्ट्री प्रविष्टियों का उपयोग करने में समस्या यह है कि यह एक पूरे के रूप में आवेदन पर लागू होता है मैं Google स्केचअप के लिए प्लगइन्स लिखता हूं, जहां आपके पास यूआई बनाने के लिए वेबडियल विंडो हैं – यह विंडो में सिर्फ एक वेबब्राउज़र नियंत्रण है लेकिन यह समस्या की ओर जाता है क्योंकि मैं वेबब्रोजर नियंत्रण के अपने उदाहरण के लिए एक दस्तावेज़ मोड को मजबूर करना चाहता हूं, पूरे एसयू के वेबब्रोजर नियंत्रणों के लिए नहीं

तो, मेरा प्रश्न यह है कि आप किसी वेबब्राउजर नियंत्रण के लिए दस्तावेज मोड प्रति उदाहरण कैसे नियंत्रित करते हैं?

Solutions Collecting From Web of "वेब ब्राज़र को IE9 में मानकों को कैसे नियंत्रित करें?"

क्या आपने अपने html में सेट करने की कोशिश की है

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

या

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

जिसका नवीनतम संस्करण अर्थ है

आईई 8 संस्करण की तरह आईई 9 "वर्जन" वेबब्रोजर नियंत्रण, वास्तव में एक में कई ब्राउज़रों है आईई 8 वर्जन के विपरीत, आपके पास पेज के अंदर काम करने के तरीके के आधार पर थोड़ी अधिक नियंत्रण है, बेशक, ब्राउज़र मोड को बदलने के लिए आपको अपना रजिस्ट्री पहले के उत्तर की तरह सेट करना है। यहां FEATURE_BROWSER_EMULATION का स्थान है:

 HKEY_LOCAL_MACHINE (or HKEY_CURRENT_USER) SOFTWARE Microsoft Internet Explorer Main FeatureControl FEATURE_BROWSER_EMULATION contoso.exe = (DWORD) 000090000 

यहां कोड का पूरा सेट है:

  • 99 99 (0x270F) – इंटरनेट एक्सप्लोरर 9। वेबपेज IE9 मानक मोड में प्रदर्शित किए जाते हैं, चाहे DOCTYPE निर्देशक!
  • 9000 (0x2328) – इंटरनेट एक्सप्लोरर 9। मानकों पर आधारित वेबपेज! DOCTYPE निर्देश IE9 मोड में दिखाए जाते हैं।
  • 8888 (0x22 बी 8) -वेब पेज IE8 मानक मोड में प्रदर्शित किए जाते हैं, चाहे DOCTYPE निर्देशक!
  • 8000 (0x1F40) – मानकों के आधार पर वेबपेज! DOCTYPE निर्देश IE8 मोड में दिखाए जाते हैं।
  • 7000 (0x1B58) – मानकों के आधार पर वेबपेज! DOCTYPE निर्देश IE7 मानक मोड में प्रदर्शित किए जाते हैं।

पूर्ण दस्तावेज़:

http://msdn.microsoft.com/en-us/library/ee330730%28VS.85%29.aspx#browser_emulation

FEATURE_BROWSER_EMULATION CoInternetSetFeatureEnabled के साथ काम नहीं करता है आईई 7 के बाद से इंटरफेस के दस्तावेज अपडेट नहीं किए गए हैं।

चूंकि सुविधा सेटिंग HKEY_CURRENT_USER \ SOFTWARE \ Microsoft \ Internet Explorer \ Main \ FeatureControl के अंतर्गत है, इसलिए आप रजिस्ट्री एपीआई हुक के माध्यम से अपनी प्रक्रिया में मूल्य को ओवरराइड कर सकते हैं।