Элемент управления MSIEs WebBrowser, размещенный в приложении winforms, работает в режиме совместимости. - PullRequest
9 голосов
/ 24 августа 2010

Я принимаю MSIE в форме winforms. К сожалению, он настаивает на том, чтобы работать в режиме совместимости, независимо от того, если я дам ему страницу, которая работает в режиме IE8 в автономном IE. Результатом этого является то, что некоторый контент, который корректно отображается в автономной MSIE, полностью выровнен и испорчен в размещенном элементе управления.

Помимо типа документа и т. Д., Есть ли какой-нибудь волшебный способ сообщить веб-браузеру, что я хочу, чтобы он отображал страницу так же, как если бы я загружал ее в автономном MSIE?

Я не хочу использовать переопределение ключа реестра (http://blogs.msdn.com/b/ie/archive/2009/03/10/more-ie8-extensibility-improvements.aspx), поскольку моя форма является частью надстройки для другого приложения. Я не хочу менять поведение IE для основного приложения и не хочу менять его для других надстроек, работающих под этим приложением. Я хочу, чтобы это работало только в браузере, размещенном в моей форме, а не во всем приложении и не во всем процессе.

Ответы [ 2 ]

10 голосов
/ 26 августа 2010

Я не проверял это, но как насчет использования тега META вместе с атрибутом HTTP-EQUIV , чтобы установить для значения X-UA-COMPATIBLE значение IE=8, которое поручает веб-браузеру отображать страницу в стандартном режиме IE 8. Примером может быть:

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

Из этой строки в следующей статье 1011 * кажется, что это должно работать.

По умолчанию приложения, размещающие WebBrowser Control открыт основанные на стандартах страницы в режиме IE7 если страница не содержит соответствующий X-UA-совместимый заголовок. Вы можете изменить это, добавив имя исполняемого файла приложения функция FEATURE_BROWSER_EMULATION управляющий ключ и установка значения соответственно.

3 голосов
/ 30 августа 2010

Чтобы изменить стандартное поведение элемента управления веб-браузера, работающего в вашем приложении, в соответствии с тем, что делает сам IE, необходимо установить FEATURE_BROWSER_EMULATION Ключ управления функциями.

Например, вы можете имитировать поведение IE8 (позволяя сайтам отображаться в режиме стандартов IE8) следующим образом.

Внутри HKEY_LOCAL_MACHINE \ Программное обеспечение \ Microsoft \ Internet Explorer \ Main \ FeatureControl

Создать новый ключ с именем FEATURE_BROWSER_EMULATION

Внутри этого ключа добавьте новый REG_DWORD со значением 8000 с именем исполняемого файла вашего приложения. E.g.:

"YourApp.exe" = dword 8000 (Hex: 0x1F40)

Более подробная информация по адресу: http://blogs.msdn.com/b/ie/archive/2009/03/10/more-ie8-extensibility-improvements.aspx

...