Heim >Backend-Entwicklung >C++ >Warum führt die Einstellung von FEATURE_BROWSER_EMULATION auf IE10 oder IE11 zu einer Fehlfunktion der Webbrowser-Steuerung?
Webbrowser-Steuerelemente erfordern bei der Verwendung in Anwendungen oft die Unterstützung spezifischer Kompatibilitätseinstellungen die Darstellung von Webinhalten. FEATURE_BROWSER_EMULATION ist eine Registrierungseinstellung, die es Entwicklern ermöglicht, den Browsermodus zu steuern, den das Webbrowser-Steuerelement verwendet. Bestimmte für diese Funktion festgelegte Werte können jedoch zu Emulationsproblemen führen.
Ein Benutzer ist auf eine Situation gestoßen, in der das Festlegen von FEATURE_BROWSER_EMULATION auf IE10- oder IE11-Werte zu einer Fehlfunktion eines Webbrowser-Steuerelements führte. Insbesondere funktionierte eine Monats-Datumsauswahl auf der Dojo Toolkit-Kalender-Demoseite nicht mehr. Das Steuerelement funktionierte ohne FEATURE_BROWSER_EMULATION-Einstellung oder bei Einstellung auf IE9-Emulation korrekt.
Das Problem wurde durch Deaktivieren der FEATURE_NINPUT_LEGACY_MODE-Registrierungseinstellung zusammen mit Optimierungen und Verbesserungen für das WebBrowser-Steuerelement behoben. Hier ist eine detaillierte Untersuchung der implementierten Änderungen:
Das folgende Codebeispiel zeigt, wie diese Registrierungswerte in C# festgelegt werden:
<code class="c#">const string FEATURE_BROWSER_EMULATION = @"HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\FeatureControl\"; Registry.SetValue(FEATURE_BROWSER_EMULATION + "FEATURE_BROWSER_EMULATION", appName, GetBrowserEmulationMode(), RegistryValueKind.DWord); Registry.SetValue(FEATURE_BROWSER_EMULATION + "FEATURE_ENABLE_CLIPCHILDREN_OPTIMIZATION", appName, 1, RegistryValueKind.DWord); Registry.SetValue(FEATURE_BROWSER_EMULATION + "FEATURE_AJAX_CONNECTIONEVENTS", appName, 1, RegistryValueKind.DWord); Registry.SetValue(FEATURE_BROWSER_EMULATION + "FEATURE_GPU_RENDERING", appName, 1, RegistryValueKind.DWord); Registry.SetValue(FEATURE_BROWSER_EMULATION + "FEATURE_WEBOC_DOCUMENT_ZOOM", appName, 1, RegistryValueKind.DWord); Registry.SetValue(FEATURE_BROWSER_EMULATION + "FEATURE_NINPUT_LEGACYMODE", appName, 0, RegistryValueKind.DWord);</code>
Das obige ist der detaillierte Inhalt vonWarum führt die Einstellung von FEATURE_BROWSER_EMULATION auf IE10 oder IE11 zu einer Fehlfunktion der Webbrowser-Steuerung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!