문제

C# 응용 프로그램에서 IE8을 WebBrowser 컨트롤로 사용하고 싶습니다."쿼크 모드"를 비활성화하고 IE가 표준을 준수하도록 강제하려면 어떻게 해야 합니까(구현된 경우)?

도움이 되었습니까?

해결책

귀하가 직면한 문제는 다음에 설명되어 있다고 생각합니다. IE블로그:IE8의 WebBrowser 컨트롤 렌더링 모드:

웹마스터는 쉽게 변경할 수 있지만 해당 사이트가 IE의 새 버전, 많은 소프트웨어 공급업체는 다음을 수행할 리소스가 없습니다. 의 새 버전을 즉시 푸시합니다. 업데이트된 응용 프로그램 내부 페이지.이러한 기존 응용 프로그램이 제대로 작동하고, IE8은 기본적으로 IE7 표준 모드에서 WebBrowser 컨트롤의 인스턴스 내에서 실행되는 페이지를 렌더링합니다.

여기에서 페이지의 댓글에는 위의 내용이 올바르지 않다고 나와 있으며 "IE8은 기본적으로 IE7 Strict 모드 또는 Quirks 모드의 WebBrowser 컨트롤 인스턴스 내에서 실행되는 페이지를 렌더링합니다., 페이지의 문서 유형에 따라 다릅니다."

해결책은 다음과 같습니다.

실행 파일이 웹 브라우저 제어 인스턴스를로드하면 레지스트리를 스캔하여 실행 파일이 IE7 표준 또는 IE8 표준 모드를 ​​원하는지 확인합니다.

...

IE8 표준 모드에서 실행하려면 다음 레지스트리 값을 삽입하십시오.

[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_NATIVE_DOCUMENT_MODE]

"MyApplication.exe"=dword:13880

이 두 인스턴스에서 MyApplication.exe는 지정된 모드에서 웹 브라우저 컨트롤을 실행할 실행 파일의 이름으로 대체해야합니다.

따라서 "프로그래밍 방식" 솔루션은 IE8 표준 모드를 ​​원한다고 레지스트리에 키를 작성하는 것 같습니다. WebBrowser 특정 애플리케이션에서 제어할 수 있습니다.

다른 팁

레지스트리 키 기술을 사용하지 않으려면 다음 태그를 삽입 할 수 있습니다.

<meta http-equiv="X-UA-Compatible" content="IE=8" />

"콘텐츠"속성은 다양한 모드로 렌더링됩니다.

마지막으로 들었던 것은 IE8이 사용할 것이라는 것이 었습니다 기본적으로 표준 모드. 최신 베타 버전의 실제 문제가 있습니까? 사용자가 명시 적으로 부딪치지 않고 시작하는 것이 시작되는 것이 시작되는 것이 확실합니까? 호환성보기 버튼?

베타 이후 몇 가지 변경 사항이 있었으며 레지스트리 키의 이름이 바뀌 었습니다. 여기에서 자세히 알아보십시오.

이것은 프로그래밍 방식 으로이 작업을 수행하는 실제 코드가 있으며 지금까지 IE11까지 처리합니다.

C# WebBrowser Ajax 호출

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top