Maison >développement back-end >C++ >Pourquoi la définition de FEATURE_BROWSER_EMULATION sur IE10 ou IE11 entraîne-t-elle un dysfonctionnement du contrôle du navigateur Web ?
Les contrôles du navigateur Web, lorsqu'ils sont utilisés dans des applications, nécessitent souvent des paramètres de compatibilité spécifiques pour prendre en charge le rendu du contenu Web. FEATURE_BROWSER_EMULATION est un paramètre de registre qui permet aux développeurs de contrôler le mode de navigateur utilisé par le contrôle du navigateur Web. Cependant, certaines valeurs définies pour cette fonctionnalité peuvent entraîner des problèmes d'émulation.
Un utilisateur a rencontré une situation dans laquelle la définition de FEATURE_BROWSER_EMULATION sur les valeurs IE10 ou IE11 provoquait un dysfonctionnement du contrôle du navigateur Web. Plus précisément, un sélecteur de date mensuelle sur le site de démonstration du calendrier Dojo Toolkit a cessé de fonctionner. Le contrôle a fonctionné correctement sans aucun paramètre FEATURE_BROWSER_EMULATION ou lorsqu'il est défini sur l'émulation IE9.
Le problème a été résolu en désactivant le paramètre de registre FEATURE_NINPUT_LEGACY_MODE ainsi que par des optimisations et des améliorations pour le contrôle WebBrowser. Voici un examen détaillé des modifications mises en œuvre :
L'exemple de code suivant montre comment définir ces valeurs de registre en C# :
<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>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!