दिलचस्प पोस्ट
VB.NET बराबर विकल्प के साथ सी # 'गतिशील' सख्त पर IEnumerable के संभावित बहु गणना के लिए चेतावनी संभालना वेरिएबल और फ़ंक्शन के नामों के लिए पायथन में नेमिंग सम्मेलन क्या है? कौन सा। NET निर्भरता इंजेक्शन फ़्रेमवर्क तलाश में लायक हैं? क्या जावास्क्रिप्ट के माध्यम से एक लिंक (या किसी तत्व का) क्लिक करें ईवेंट को ट्रिगर करना संभव है? किसी प्रोग्राम के आउटपुट को एक चर में निर्दिष्ट करें सी में एक अलग फ़ंक्शन में एक सूचक को प्रारंभ करना क्या <img> तत्व ब्लॉक स्तर या इनलाइन स्तर है? एन्क्रीप्ट और डिक्रिप्ट का उपयोग करके PyCrypto एईएस 256 गिट SSH प्रमाणीकरण Google मैप इन्फोलाइन इंडेक्स ठीक से नहीं दिखा रहा है दो अलग जावा डेस्कटॉप अनुप्रयोगों के बीच संचार एंड्रॉइड में रिमाइंडर कैसे सेट करें? Jquery फ़ॉर्म पर पेज लोड को रोकें कोई भी डिस्प्ले बटन के साथ सबमिट करें अजगर गणित गलत है

वेब ब्राज़र को 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 स्केचअप के लिए प्लगइन्स लिखता हूं, जहां आपके पास यूआई बनाने के लिए वेबडियल विंडो हैं – यह विंडो में सिर्फ एक वेबब्राउज़र नियंत्रण है लेकिन यह समस्या की ओर जाता है क्योंकि मैं वेबब्रोजर नियंत्रण के अपने उदाहरण के लिए एक दस्तावेज़ मोड को मजबूर करना चाहता हूं, पूरे एसयू के वेबब्रोजर नियंत्रणों के लिए नहीं

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

वेब के समाधान से एकत्रित समाधान "वेब ब्राज़र को 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 के अंतर्गत है, इसलिए आप रजिस्ट्री एपीआई हुक के माध्यम से अपनी प्रक्रिया में मूल्य को ओवरराइड कर सकते हैं।