揭示Web 瀏覽器控制項模擬(FEATURE_BROWSER_EMULATION) 背後的問題
在C# Web 瀏覽器無法實現看起來很簡單,尤其是在註冊表中不同的FEATURE_BROWSER_EMULATION 設定的情況下。 Guy 提出了一個有趣的查詢,探討了使用此功能模擬瀏覽器版本時遇到的常見問題背後的根本原因。
背景:
Guy 使用 Visual Studio 建立了一個簡單的應用程式2013,它利用 Web 瀏覽器控制項存取 Dojo Toolkit 網站上的頁面。當註冊表中未設定 FEATURE_BROWSER_EMULATION 時,站點將按預期運行。但是,設定與 IE9 模擬及以上版本相對應的值會導致故障。
調查問題:
問題在於 FEATURE_BROWSER_EMULATION 設定與頁面行為之間的互動。當 Guy 的應用程式模擬 IE9 以下的 IE 版本時,頁面可以正常運行,這表示與舊版瀏覽器標準相容。但是,使用 IE9 及更高版本的值會導致衝突,導致月份日期選擇器無法運作。
解決方案:
解決方案涉及關鍵的註冊表設定調整:停用 FEATURE_NINPUT_LEGACY_MODE。此功能會影響 Internet Explorer 中處理非客戶端輸入的方式,並可能幹擾某些頁面元素,包括日期選擇器。
修訂的實現:
修訂的實作Guy 的應用程式透過停用FEATURE_NINPUT_LEGACY_MODE 解決了這個問題:
Registry.SetValue(featureControlRegKey + "FEATURE_NINPUT_LEGACYMODE", appName, 0, RegistryValueKind.DWord);
事實證明,切換FEATURE_NINPUT_LEGACY_MODE 設定有助於解決Guy 應用程式的問題。停用此功能可以增強 Web 瀏覽器控制項與現代頁面的兼容性,並消除因 FEATURE_BROWSER_EMULATION 值不同而導致的渲染問題。
以上是為什麼停用「FEATURE_NINPUT_LEGACY_MODE」可以修復 Web 瀏覽器控制模擬問題?的詳細內容。更多資訊請關注PHP中文網其他相關文章!