Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah saya boleh membetulkan panggilan Ajax beku dalam kawalan C# Webbrowser?
Ramai pemaju menemui soalan yang mengecewakan apabila menggunakan kawalan C Masalah ini disebabkan oleh perbezaan tingkah laku antara kawalan Webbrowser dan penyemak imbas Internet Explorer (IE) yang lengkap.
Untuk menyelesaikan masalah ini, kita boleh menggunakan "kawalan ciri", yang merupakan mekanisme yang membolehkan kita mensimulasikan tingkah laku kawalan webbrowser untuk mendekati tingkah laku pelayar IE. Salah satu fungsi utama yang perlu diaktifkan ialah
, yang menetapkan mod simulasi penyemak imbas. Di samping itu, kita juga boleh mengaktifkan fungsi lain untuk meningkatkan keserasian, seperti, FEATURE_BROWSER_EMULATION
dan FEATURE_AJAX_CONNECTIONEVENTS
. FEATURE_ENABLE_CLIPCHILDREN_OPTIMIZATION
FEATURE_MANAGE_SCRIPT_CIRCULAR_REFS
Serpihan kod berikut menunjukkan cara menetapkan kunci kawalan fungsi penyemak imbas:
Dengan menetapkan kekunci kawalan fungsional ini, kawalan webbrowser harus dapat bekerjasama untuk bekerja dengan pelayar IE yang lengkap untuk menyelesaikan masalah kawalan yang dibekukan oleh panggilan Ajax. Harus diingat bahawa penetapan kunci ini tidak memerlukan kebenaran pentadbir.
<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>
Atas ialah kandungan terperinci Bagaimanakah saya boleh membetulkan panggilan Ajax beku dalam kawalan C# Webbrowser?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!