मैं एक सी # अनुप्रयोग में WebBrowser नियंत्रण के रूप में IE8 का उपयोग करना चाहता हूं। मैं "quirks मोड" को कैसे अक्षम कर सकता हूं और आईई को मानकों के अनुपालन में मजबूर कर सकता हूं (जहां तक इसे लागू किया गया है)?IE8 WebBrowser नियंत्रण में प्रोग्रामिंग रूप से क्विर्क मोड को कैसे बंद करें?
उत्तर
मुझे लगता है कि जिस समस्या का सामना कर रहे हैं IEBlog: WebBrowser Control Rendering Modes in IE8 में वर्णित है:
वेबमास्टर्स आसानी से IE के नए संस्करण में ठीक से प्रस्तुत करने के लिए अपनी साइट, कई सॉफ्टवेयर विक्रेताओं की जरूरत नहीं है बदल सकते हैं संसाधन के नए संस्करणों को तत्काल आंतरिक पृष्ठों के साथ अपने अनुप्रयोगों को धक्का दें। यह सुनिश्चित करने के लिए कि ये मौजूदा अनुप्रयोग कार्य क्रम में रहते हैं, IE8 डिफ़ॉल्ट रूप से IE7 मानक मोड में WebBrowser नियंत्रण के उदाहरणों के भीतर चल रहे पृष्ठों को प्रस्तुत करता है।
यहाँ मैं नोट करना चाहिए कि पृष्ठ पर मौजूद टिप्पणियों का कहना है कि इसके बाद के संस्करण गलत है, और कहा कि "IE8 डिफ़ॉल्ट द्वारा IE7 सख्त मोड या असामान्य मोड में WebBrowser नियंत्रण के उदाहरण के भीतर चल पृष्ठों, पर निर्भर करता है renders पृष्ठ का सिद्धांत। "
समाधान इस प्रकार है:
एक निष्पादन WebBrowser नियंत्रण का एक उदाहरण लोड करता है जब यह है कि क्या निष्पादन IE7 मानकों या IE8 मानक मोड चाहता है की जाँच करने के रजिस्ट्री स्कैन करता है।
...
IE8 मानक मोड डालने में निम्न रजिस्ट्री मूल्य चलाने के लिए:
[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_NATIVE_DOCUMENT_MODE]
"MyApplication.exe"=dword:13880
इन उदाहरणों के दोनों में, MyApplication.exe होना चाहिए को निष्पादन योग्य के नाम से वेबब्राउज़र cont में एक निर्दिष्ट मोड में रोल्स।
तो यह लग रहा है "कार्यक्रम संबंधी" समाधान की तरह कह रही है कि आप अपने विशिष्ट अनुप्रयोग में WebBrowser
नियंत्रण के लिए IE8 मानक मोड चाहते रजिस्ट्री में एक महत्वपूर्ण लिखने के लिए है।
आखिरी मैंने सुना था कि आईई 8 standards mode by default का उपयोग करेगा। क्या आप नवीनतम बीटा संस्करण के साथ एक वास्तविक समस्या देख रहे हैं? क्या आप निश्चित रूप से compatibility view button पर मारने वाले उपयोगकर्ता के बिना शुरू करने के लिए क्विर्क मोड में प्रतिपादन कर रहे हैं?
मुझे लगता है कि 'WebBrowser' नियंत्रण और स्टैंडअलोन ब्राउज़र इस मामले में अलग ढंग से व्यवहार। –
ऐसा लगता है, हाँ। इसे अधिक विशिष्ट बनाने के लिए प्रश्न शीर्षक संपादित करेंगे। –
कृपया ध्यान दें कि बीटा के बाद से कुछ बदलाव हुए हैं, रजिस्ट्री कुंजियों का नाम बदल दिया गया है Read more here।
आप रजिस्ट्री कुंजी तकनीक का उपयोग नहीं करना चाहते हैं, तो आपको निम्न टैग सम्मिलित हो सकते हैं:
<meta http-equiv="X-UA-Compatible" content="IE=8" />
"सामग्री" विशेषता बलों विभिन्न मोड में हो जाता है।
यह वास्तविक कोड प्रोग्राम के रूप में यह करने के लिए है और अब तक IE11 अप करने के लिए संभालती है:
ब्राउज़र नियंत्रण पर सेट करने के लिए कोई संपत्ति होने पर यह बेहतर होगा - उपयोगकर्ता के पास रजिस्ट्री अनुमतियां नहीं होने पर यह आसान होगा, हालांकि यह HKEY_CURRENT_USER के तहत कोई समस्या नहीं है (कुंजी HKEY_LOCAL_MACHINE के बराबर बिंदु में भी काम करती है)। – Anthony
FYI, 'FEATURE_NATIVE_DOCUMENT_MODE' को 'FEATURE_BROWSER_EMULATION' द्वारा सफलतापूर्वक बढ़ा दिया गया है। –