首頁  >  文章  >  後端開發  >  為什麼將 FEATURE_BROWSER_EMULATION 設定為 IE10 或 IE11 會導致 Web 瀏覽器控制故障?

為什麼將 FEATURE_BROWSER_EMULATION 設定為 IE10 或 IE11 會導致 Web 瀏覽器控制故障?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-11-01 01:33:02774瀏覽

Why Does Setting FEATURE_BROWSER_EMULATION to IE10 or IE11 Cause Web Browser Control Malfunction?

使用FEATURE_BROWSER_EMULATION 調查Web 瀏覽器控制項模擬問題

上下文

Web 瀏覽器控制應用程式中使用時,通常需要特定的相容性設定來支持網頁內容的呈現。 FEATURE_BROWSER_EMULATION 是一個註冊表設置,可讓開發人員控制 Web 瀏覽器控制項所使用的瀏覽器模式。但是,為此功能設定的某些值可能會導致模擬問題。

問題

使用者遇到了將 FEATURE_BROWSER_EMULATION 設定為 IE10 或 IE11 值導致 Web 瀏覽器控制項出現故障的情況。具體來說,Dojo Toolkit 日曆示範網站上的月份日期選擇器停止運作。在沒有任何 FEATURE_BROWSER_EMULATION 設定或設定為 IE9 模擬時,該控制項可以正常運作。

解決方案

透過停用 FEATURE_NINPUT_LEGACY_MODE 註冊表設定以及 WebBrowser 控制項的最佳化和增強,解決了該問題。以下是已實施變更的詳細檢查:

  1. 停用 FEATURE_NINPUT_LEGACY_MODE:預設情況下,啟用此設置,但停用它可確保 Web 瀏覽器控制項中支援 NINPUT API。
  2. 啟用 CLIPCHILDREN 和 GPU_RENDERING:這些設定透過允許瀏覽器控制項使用加速渲染和剪輯來增強效能。開發人員必須平衡這些功能與潛在的兼容性問題。
  3. 啟用 AJAX_CONNECTIONEVENTS 和 WEBOC_DOCUMENT_ZOOM:這些設定分別增強 Web 應用程式回應能力並允許動態調整網頁大小。

以下程式碼範例示範如何在 C# 中設定這些登錄值:

<code class="c#">const string FEATURE_BROWSER_EMULATION = @"HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\FeatureControl\";
        
Registry.SetValue(FEATURE_BROWSER_EMULATION + "FEATURE_BROWSER_EMULATION", appName, GetBrowserEmulationMode(), RegistryValueKind.DWord);
Registry.SetValue(FEATURE_BROWSER_EMULATION + "FEATURE_ENABLE_CLIPCHILDREN_OPTIMIZATION", appName, 1, RegistryValueKind.DWord);
Registry.SetValue(FEATURE_BROWSER_EMULATION + "FEATURE_AJAX_CONNECTIONEVENTS", appName, 1, RegistryValueKind.DWord);
Registry.SetValue(FEATURE_BROWSER_EMULATION + "FEATURE_GPU_RENDERING", appName, 1, RegistryValueKind.DWord);
Registry.SetValue(FEATURE_BROWSER_EMULATION + "FEATURE_WEBOC_DOCUMENT_ZOOM", appName, 1, RegistryValueKind.DWord);
Registry.SetValue(FEATURE_BROWSER_EMULATION + "FEATURE_NINPUT_LEGACYMODE", appName, 0, RegistryValueKind.DWord);</code>

以上是為什麼將 FEATURE_BROWSER_EMULATION 設定為 IE10 或 IE11 會導致 Web 瀏覽器控制故障?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn