Элемент управления MSIEs WebBrowser, размещенный в приложении winforms, работает в режиме совместимости.
Я принимаю MSIE в форме winforms. К сожалению, он настаивает на том, чтобы работать в режиме совместимости, независимо от того, если я дам ему страницу, которая работает в режиме IE8 в автономном IE. Результатом этого является то, что некоторый контент, который корректно отображается в автономном MSIE, полностью выровнен и испорчен в размещенном элементе управления.
Помимо типа документа и т. Д., Есть ли какой-нибудь волшебный способ сообщить веб-браузеру, что я хочу, чтобы он отображал страницу так же, как если бы я загружал ее в автономном MSIE?
Я не хочу использовать переопределение ключа реестра ( http://blogs.msdn.com/b/ie/archive/2009/03/10/more-ie8-extensibility-improvements.aspx) из-за того, что моя форма является частью надстройки для другого приложения. Я не хочу менять поведение IE для основного приложения и не хочу менять его для других надстроек, работающих под этим приложением. Я хочу, чтобы это работало только в браузере, размещенном в моей форме, а не на уровне приложения и не на уровне процесса.
2 ответа
Я не проверял это, но как насчет использования тега META вместе с атрибутом HTTP-EQUIV, чтобы установить X-UA-COMPATIBLE
значение для IE=8
, который инструктирует веб-браузер отображать страницу в стандартном режиме IE 8. Примером может быть:
<meta http-equiv="X-UA-Compatible" content="IE=8" />
Из этой строки в следующей статье кажется, что это должно работать.
По умолчанию приложения, в которых размещается элемент управления WebBrowser, открывают основанные на стандартах страницы в режиме IE7, если только страница не содержит соответствующего заголовка, совместимого с X-UA. Вы можете изменить это, добавив имя исполняемого файла приложения к управляющей клавише функции FEATURE_BROWSER_EMULATION и установив соответствующее значение.
Чтобы изменить поведение по умолчанию для элемента управления веб-браузера, работающего в вашем приложении, в соответствии с тем, что делает сам IE, необходимо установить ключ управления функциями FEATURE_BROWSER_EMULATION.
Например, вы можете имитировать поведение IE8 (позволяя сайтам отображаться в режиме стандартов IE8) следующим образом.
Inside HKEY_LOCAL_MACHINE \ Программное обеспечение \Microsoft\Internet Explorer\Main\FeatureControl
Создайте новый ключ с именем FEATURE_BROWSER_EMULATION
Внутри этого ключа добавьте новый REG_DWORD со значением 8000 с именем исполняемого файла вашего приложения. Например:
"YourApp.exe" = dword 8000 (Hex: 0x1F40)
Более подробная информация по адресу: http://blogs.msdn.com/b/ie/archive/2009/03/10/more-ie8-extensibility-improvements.aspx