¿El IE9 WebBrowser Control admitirá todas las funciones de IE9, incluido SVG?

Resuelto Omkar asked hace 13 años • 12 respuestas

Recientemente actualicé a IE9-beta. Ahora, en mi aplicación WinForm .Net (3.5) quiero usar WebBrowserel control.

Entonces mi pregunta es, ¿si el WebBrowsercontrol exhibirá todas las propiedades y funciones de IE9?

Mi preocupación es que quiero representar algunos gráficos SVG en él.

Omkar avatar Jan 06 '11 13:01 Omkar
Aceptado

El control WebBrowser utilizará cualquier versión de IE que haya instalado, pero por razones de compatibilidad mostrará las páginas en el modo Estándar de IE7 de forma predeterminada.

Si desea aprovechar las nuevas funciones de IE9, debe agregar la metaetiqueta <meta http-equiv="X-UA-Compatible" content="IE=9" >dentro de la <head>etiqueta de su página HTML.

Sin embargo, esta metaetiqueta debe agregarse antes de cualquier enlace a CSS, archivos JavaScript, etc. que también estén en su archivo <head>para que funcione correctamente (solo otras <meta>etiquetas o la <title>etiqueta pueden ir antes).

Una alternativa es agregar una entrada de registro a:

HKLM > SOFTWARE > Microsoft > Internet Explorer > Principal > FeatureControl > FEATURE_BROWSER_EMULATION

Y allí agregue 'myApplicationName.exe' con el valor '9000' para forzar que el control WebBrowser muestre páginas en modo IE9. Aunque hay otros valores que también puedes usar , ten en cuenta que estos documentos no son del todo precisos ya que no parece posible hacer que una página se represente en modo IE 8, sea cual sea el valor que uses.

Agregar la clave de registro a la misma ruta en HKCU en lugar de HKLM también funcionará; esto es útil ya que escribir en HKLM requiere privilegios de administrador, mientras que HKCU no.

Michael Low avatar Jan 06 '2011 08:01 Michael Low

La "versión" IE9 del control WebBrowser, al igual que la versión IE8, es en realidad varios navegadores en uno. A diferencia de la versión IE8, tienes un poco más de control sobre el modo de representación dentro de la página cambiando el tipo de documento. Por supuesto, para cambiar el modo del navegador debe configurar su registro como en la respuesta anterior. Aquí hay un fragmento de archivo de registro para FEATURE_BROWSER_EMULATION:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION]
"contoso.exe"=dword:00002328

Aquí está el conjunto completo de códigos:

  • 9999 (0x270F) - Internet Explorer 9. Las páginas web se muestran en el modo Estándar IE9, independientemente de la directiva !DOCTYPE.
  • 9000 (0x2328) - Internet Explorer 9. Las páginas web que contienen directivas !DOCTYPE basadas en estándares se muestran en modo IE9.
  • 8888 (0x22B8): las páginas web se muestran en el modo Estándar IE8, independientemente de la directiva! DOCTYPE.
  • 8000 (0x1F40) : las páginas web que contienen directivas !DOCTYPE basadas en estándares se muestran en modo IE8.
  • 7000 (0x1B58) : las páginas web que contienen directivas !DOCTYPE basadas en estándares se muestran en el modo Estándares IE7.

Los documentos completos:

http://msdn.microsoft.com/en-us/library/ee330730%28VS.85%29.aspx#browser_emulation

whitehawk avatar Mar 18 '2011 19:03 whitehawk

Gracias a Dios encontré esto. Lo siguiente es extremadamente importante:

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

Sin esto, ninguno de los informes que había estado generando funcionaría después de la instalación de IE9 a pesar de haber funcionado muy bien en IE8. Aparecerían correctamente en el control de un navegador web, pero faltarían letras, habría espacios en blanco aumentados, etc., cuando llamé a .Print(). Eran simplemente HTML básico que debería poder representarse incluso en Mosaic. Je, no estoy seguro de por qué el modo de compatibilidad de IE7 se estaba volviendo loco. En particular, puede .Print() la misma página 5 veces y hacer que le falten letras diferentes cada vez. Incluso se trasladaría a la salida PDF, por lo que definitivamente es el navegador.

Geoff avatar Mar 15 '2011 17:03 Geoff

Una nota sobre Windows de 64 bits que parece hacer tropezar a algunas personas. Si su aplicación se ejecuta en Windows de 64 bits, es probable que deba configurar el DWORD en [HKLM\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION].

jtk avatar Sep 15 '2012 14:09 jtk

Sé que este hilo es antiguo y ya hay respuestas completas.

Por si no sabes esto:

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

No es necesario codificar el número de versión de IE como

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

Tyler Liu avatar Jan 23 '2015 09:01 Tyler Liu