Dépannage des problèmes AJAX dans le contrôle WebBrowser de C #
Le contrôle C # WebBrowser
se débat parfois avec les appels Ajax, conduisant à une suspension frustrante "votre demande est traitée". Ce comportement diffère considérablement d'un navigateur IE complet, qui gère généralement ces appels sans problème.
La solution réside souvent dans la configuration du contrôle des fonctionnalités pour mieux aligner le comportement du contrôle WebBrowser
avec celui d'une instance IE standard. Surtout, la définition de la fonction "FEATURE_BROWSER_EMULATION"
assure une meilleure compatibilité des scripts.
Voici une fonction pour modifier les paramètres de registre:
<code class="language-csharp">private void SetBrowserFeatureControlKey(string feature, string appName, uint value) { using (var key = Registry.CurrentUser.CreateSubKey( String.Concat(@"Software\Microsoft\Internet Explorer\Main\FeatureControl\", feature), RegistryKeyPermissionCheck.ReadWriteSubTree)) { key.SetValue(appName, (UInt32)value, RegistryValueKind.DWord); } }</code>
Cette fonction est utilisée dans SetBrowserFeatureControl()
:
<code class="language-csharp">private void SetBrowserFeatureControl() { // Avoid modifying settings in the Visual Studio debugger var fileName = System.IO.Path.GetFileName(Process.GetCurrentProcess().MainModule.FileName); if (String.Compare(fileName, "devenv.exe", true) == 0 || String.Compare(fileName, "XDesProc.exe", true) == 0) return; // Register necessary features (see detailed explanation below for a comprehensive list) // ... }</code>
Pour vous assurer que ces modifications sont appliquées avant l'initialisation du contrôle WebBrowser
, appelez SetBrowserFeatureControl()
dans le constructeur de votre formulaire principal:
<code class="language-csharp">public MainWindow() { SetBrowserFeatureControl(); InitializeComponent(); //... }</code>
Pour une liste complète des paramètres de contrôle des fonctionnalités recommandés pour résoudre divers problèmes de compatibilité, reportez-vous à cette ressource: Paramètres de clé de contrôle des fonctionnalités du navigateur Cela fournira une solution plus robuste aux problèmes suspendus liés à l'Ajax dans le WebBrowser
Contrôle.
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!