Rumah > pembangunan bahagian belakang > C++ > Mengapa Penyemak Imbas Web saya mengawal kerosakan Visual Studio apabila menetapkan FEATURE_BROWSER_EMULATION kepada IE10 atau IE11?

Mengapa Penyemak Imbas Web saya mengawal kerosakan Visual Studio apabila menetapkan FEATURE_BROWSER_EMULATION kepada IE10 atau IE11?

Patricia Arquette
Lepaskan: 2024-11-04 10:15:02
asal
627 orang telah melayarinya

Why does my Web Browser control in Visual Studio malfunction when setting FEATURE_BROWSER_EMULATION to IE10 or IE11?

Isu Emulasi Kawalan Penyemak Imbas Web dengan FEATURE_BROWSER_EMULATION

Penerangan Masalah:

Apabila menggunakan Web Kawalan penyemak imbas dalam Visual Studio 2013, menetapkan kunci pendaftaran FEATURE_BROWSER_EMULATION untuk aplikasi kepada nilai emulasi IE10 atau IE11 mengakibatkan kawalan tidak berfungsi. Khususnya, pemilih tarikh bulan pada halaman demo Dojo Toolkit (http://demos.dojotoolkit.org/demos/calendar/demo.html) gagal berfungsi dengan betul.

Penyelesaian:

Isu ini terdapat dalam tetapan pendaftaran FEATURE_NINPUT_LEGACY_MODE. Melumpuhkan tetapan ini, bersama-sama dengan mendayakan ciri lain melalui konfigurasi pendaftaran, menyelesaikan masalah. Berikut ialah penyelesaian yang disemak:

const int POLL_DELAY = 250;
WebBrowser _webBrowser;

// set WebBrowser features, more info: http://stackoverflow.com/a/18333982/1768303
static void SetWebBrowserFeatures()
{
    // don't change the registry if running in-proc inside Visual Studio
    if (LicenseManager.UsageMode != LicenseUsageMode.Runtime)
        return;

    var appName = System.IO.Path.GetFileName(System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName);

    var featureControlRegKey = @"HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\FeatureControl\";

    Registry.SetValue(featureControlRegKey + "FEATURE_BROWSER_EMULATION",
        appName, GetBrowserEmulationMode(), RegistryValueKind.DWord);

    // enable the features which are "On" for the full Internet Explorer browser

    Registry.SetValue(featureControlRegKey + "FEATURE_ENABLE_CLIPCHILDREN_OPTIMIZATION",
        appName, 1, RegistryValueKind.DWord);

    Registry.SetValue(featureControlRegKey + "FEATURE_AJAX_CONNECTIONEVENTS",
        appName, 1, RegistryValueKind.DWord);

    Registry.SetValue(featureControlRegKey + "FEATURE_GPU_RENDERING",
        appName, 1, RegistryValueKind.DWord);

    Registry.SetValue(featureControlRegKey + "FEATURE_WEBOC_DOCUMENT_ZOOM",
        appName, 1, RegistryValueKind.DWord);

    // Disable FEATURE_NINPUT_LEGACY_MODE
    Registry.SetValue(featureControlRegKey + "FEATURE_NINPUT_LEGACYMODE",
        appName, 0, RegistryValueKind.DWord);
}
Salin selepas log masuk

Dengan konfigurasi yang dikemas kini ini, kawalan Penyemak Imbas Web kini seharusnya berfungsi dengan betul dengan kedua-dua tetapan emulasi IE10 dan IE11 untuk aplikasi.

Atas ialah kandungan terperinci Mengapa Penyemak Imbas Web saya mengawal kerosakan Visual Studio apabila menetapkan FEATURE_BROWSER_EMULATION kepada IE10 atau IE11?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan