>  기사  >  백엔드 개발  >  FEATURE_BROWSER_EMULATION을 IE10 또는 IE11로 설정하면 웹 브라우저 제어 오작동이 발생하는 이유는 무엇입니까?

FEATURE_BROWSER_EMULATION을 IE10 또는 IE11로 설정하면 웹 브라우저 제어 오작동이 발생하는 이유는 무엇입니까?

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을 사용하여 웹 브라우저 컨트롤 에뮬레이션 문제 조사

컨텍스트

웹 브라우저 컨트롤을 애플리케이션 내에서 사용할 경우 지원하기 위해 특정 호환성 설정이 필요한 경우가 많습니다. 웹 콘텐츠 렌더링. FEATURE_BROWSER_EMULATION은 개발자가 웹 브라우저 컨트롤에서 사용하는 브라우저 모드를 제어할 수 있는 레지스트리 설정입니다. 그러나 이 기능에 설정된 특정 값은 에뮬레이션 문제를 일으킬 수 있습니다.

문제

FEATURE_BROWSER_EMULATION을 IE10 또는 IE11 값으로 설정하면 웹 브라우저 컨트롤이 오작동하는 상황이 사용자에게 발생했습니다. 특히 Dojo Toolkit 달력 데모 사이트의 월 날짜 선택 기능이 중단되었습니다. 컨트롤은 FEATURE_BROWSER_EMULATION 설정 없이 또는 IE9 에뮬레이션으로 설정된 경우 올바르게 작동했습니다.

솔루션

WebBrowser 컨트롤에 대한 최적화 및 개선 사항과 함께 FEATURE_NINPUT_LEGACY_MODE 레지스트리 설정을 비활성화하여 문제가 해결되었습니다. 구현된 변경 사항에 대한 자세한 내용은 다음과 같습니다.

  1. FEATURE_NINPUT_LEGACY_MODE 비활성화: 이 설정은 기본적으로 활성화되어 있지만 비활성화하면 웹 브라우저 컨트롤에서 NINPUT API에 대한 지원이 보장됩니다.
  2. CLIPCHILDREN 및 GPU_RENDERING 활성화: 이 설정은 브라우저 컨트롤에서 가속화된 렌더링 및 클리핑을 사용할 수 있도록 하여 성능을 향상시킵니다. 개발자는 잠재적인 호환성 문제와 이러한 기능의 균형을 맞춰야 합니다.
  3. AJAX_CONNECTIONEVENTS 및 WEBOC_DOCUMENT_ZOOM 활성화: 이러한 설정은 각각 웹 애플리케이션 응답성을 향상시키고 웹 페이지의 동적 크기 조정을 허용합니다.

다음 코드 샘플은 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로 설정하면 웹 브라우저 제어 오작동이 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.