Maison >développement back-end >C++ >Comment puis-je corriger les appels Ajax congelés dans le contrôle C # WebBrowser?
C# WebBrowser控件中Ajax调用问题的解决方案
De nombreux développeurs ont rencontré une question frustrante lors de l'utilisation du contrôle C # WebBrowser: après avoir cliqué sur le bouton de la fenêtre, le contrôle a été gelé et le "traitement de votre demande" indéfiniment.这个问题是由于WebBrowser控件和完整的Internet Explorer (IE)浏览器之间的行为差异造成的。Afin de résoudre ce problème, nous pouvons utiliser le "Contrôle des fonctionnalités", qui est un mécanisme qui nous permet de simuler le comportement de contrôle WebBrowser pour se rapprocher du comportement du navigateur IE. L'une des fonctions clés qui doivent être activées est
, qui définit le mode de simulation du navigateur. De plus, nous pouvons également permettre à d'autres fonctions d'améliorer la compatibilité, telles que FEATURE_BROWSER_EMULATION
, FEATURE_AJAX_CONNECTIONEVENTS
et FEATURE_ENABLE_CLIPCHILDREN_OPTIMIZATION
. FEATURE_MANAGE_SCRIPT_CIRCULAR_REFS
<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); } } private void SetBrowserFeatureControl() { // 在WebBrowser初始化之前实现您自己的功能集并注册它们 SetBrowserFeatureControlKey("FEATURE_BROWSER_EMULATION", fileName, GetBrowserEmulationMode()); SetBrowserFeatureControlKey("FEATURE_AJAX_CONNECTIONEVENTS", fileName, 1); SetBrowserFeatureControlKey("FEATURE_ENABLE_CLIPCHILDREN_OPTIMIZATION", fileName, 1); SetBrowserFeatureControlKey("FEATURE_MANAGE_SCRIPT_CIRCULAR_REFS", fileName, 1); // 根据需要添加其他功能 public MainWindow() { SetBrowserFeatureControl(); InitializeComponent(); } }</code>En définissant ces clés de contrôle fonctionnel, le contrôle WebBrowser devrait pouvoir travailler ensemble pour travailler avec le navigateur IE complet pour résoudre le problème du contrôle figé par l'appel AJAX. Il convient de noter que la définition de ces clés ne nécessite pas d'autorisations d'administrateur.
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!