Подтвердить что ты не робот

Как программно отключить режим quirks в элементе управления IE8 WebBrowser?

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

4b9b3361

Ответ 1

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

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

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

Решение выглядит следующим образом:

Когда исполняемый файл загружает экземпляр управления 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 Standard для элементов управления WebBrowser использовался в вашем конкретном приложении.

Ответ 2

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

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

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

Ответ 4

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

Ответ 5

У этого есть фактический код, чтобы программно сделать это и обрабатывать до IE11 до сих пор:

С# веб-браузер Ajax-вызов