Вопрос

Я хочу использовать IE8 в качестве элемента управления веб-браузером в приложении на C #.Как я могу отключить "режим причуд" и принудительно привести IE в соответствие со стандартами (насколько это реализовано)?

Это было полезно?

Решение

Я думаю, что проблема, с которой вы столкнулись, описана в IEBlog:Веб-браузер Управляет режимами рендеринга в IE8:

В то время как веб-мастера могут легко изменить свой сайт для правильного отображения в новой версии IE, у многих поставщиков программного обеспечения нет ресурсов для мгновенного выпуска новых версий своих приложений с обновленными внутренними страницами.Чтобы гарантировать, что эти существующие приложения остаются в рабочем состоянии, IE8 отображает страницы, запущенные в экземплярах элемента управления WebBrowser, в Стандартном режиме IE7 по умолчанию.

Здесь я должен отметить, что в комментариях на странице говорится, что вышесказанное неверно, и что "IE8 по умолчанию отображает страницы, запущенные в экземплярах элемента управления WebBrowser, в строгом режиме IE7 или режиме Quirks, в зависимости от типа документа страницы."

Решение заключается в следующем:

Когда исполняемый файл загружает экземпляр элемента управления WebBrowser, он сканирует реестр, чтобы проверить, поддерживает ли исполняемый файл стандарты IE7 или IE8 Стандартный режим.

...

Для запуска в стандартном режиме IE8 вставьте следующее значение реестра:

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

"MyApplication.exe"=dword:13880

В обоих этих случаях, MyApplication.exe должно быть заменено именем исполняемого файла, который будет запускать элементы управления WebBrowser в указанном режиме.

Таким образом, похоже, что "программное" решение состоит в том, чтобы записать ключ в реестре, в котором говорится, что вы хотите использовать стандартный режим IE8 для WebBrowser элементы управления в вашем конкретном приложении.

Другие советы

Если вы не хотите использовать метод раздела реестра, вы могли бы вставить следующий тег:

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

Атрибут "content" запускает рендеринг в различных режимах.

Последнее, что я услышал, было то, что IE8 будет использовать стандартный режим по умолчанию . Вы видите реальную проблему с последней бета-версией? Вы уверены, что это рендеринг в режиме причуд, чтобы начать с того, чтобы пользователь явно не нажал на кнопка просмотра совместимости ?

Обратите внимание, что после бета-тестирования произошли некоторые изменения, ключи реестра были переименованы и т. д. Подробнее читайте здесь .

Здесь есть реальный код, позволяющий сделать это программно, и он до сих пор обрабатывает до IE11:

C # webbrowser Ajax call

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top