Menyingkap Isu di sebalik Emulasi Kawalan Pelayar Web (FEATURE_BROWSER_EMULATION)
Menavigasi ke halaman web tertentu dalam aplikasi kawalan pelayar web C# mungkin tidak semudah yang kelihatan, terutamanya dengan tetapan FEATURE_BROWSER_EMULATION yang berbeza-beza dalam pendaftaran. Pertanyaan menarik daripada Guy meneroka punca di sebalik masalah biasa yang dihadapi apabila meniru versi penyemak imbas dengan ciri ini.
Latar Belakang:
Guy mencipta aplikasi mudah menggunakan Visual Studio 2013 yang menggunakan kawalan pelayar web untuk mengakses halaman di tapak web Dojo Toolkit. Apabila FEATURE_BROWSER_EMULATION tidak ditetapkan dalam pendaftaran, tapak berfungsi seperti yang diharapkan. Walau bagaimanapun, menetapkan nilai yang sepadan dengan emulasi IE9 dan ke atas menyebabkan kerosakan.
Menyiasat Masalah:
Isunya terletak pada interaksi antara tetapan FEATURE_BROWSER_EMULATION dan gelagat halaman . Apabila aplikasi Guy meniru versi IE di bawah IE9, halaman berfungsi dengan betul, menunjukkan keserasian dengan piawaian pelayar lama. Walau bagaimanapun, menggunakan nilai untuk IE9 dan lebih tinggi menyebabkan konflik, mengakibatkan pemilih tarikh bulan tidak berfungsi.
Penyelesaian:
Penyelesaian melibatkan pelarasan tetapan pendaftaran yang penting: melumpuhkan FEATURE_NINPUT_LEGACY_MODE. Ciri ini mempengaruhi cara input bukan pelanggan dikendalikan dalam Internet Explorer dan boleh mengganggu elemen halaman tertentu, termasuk pemilih tarikh.
Pelaksanaan Disemak:
Pelaksanaan yang disemak semula aplikasi Guy menangani isu ini dengan melumpuhkan FEATURE_NINPUT_LEGACY_MODE:
Registry.SetValue(featureControlRegKey + "FEATURE_NINPUT_LEGACYMODE", appName, 0, RegistryValueKind.DWord);
Kesimpulan:
Menogol tetapan FEATURE_NINPUT_LEGACY_MODE terbukti memainkan peranan penting dalam menyelesaikan masalah Guy. Melumpuhkan ciri ini meningkatkan keserasian kawalan penyemak imbas web dengan halaman moden dan menghapuskan isu pemaparan yang disebabkan oleh nilai FEATURE_BROWSER_EMULATION yang berbeza.
Atas ialah kandungan terperinci Mengapa Melumpuhkan `FEATURE_NINPUT_LEGACY_MODE` Membetulkan Isu Emulasi Kawalan Penyemak Imbas Web?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!