¿Cómo desactivar mediante programación el modo peculiaridades en el control del navegador web IE8?
Pregunta
Quiero usar IE8 como control WebBrowser en una aplicación C#.¿Cómo puedo desactivar el "modo peculiaridad" y obligar a IE a cumplir con los estándares (en la medida en que esté implementado)?
Solución
Creo que el problema que enfrenta se describe en IEBlog: Modos de representación de control de WebBrowser en IE8 :
Mientras que los webmasters pueden alterar fácilmente su sitio para representar correctamente en el nueva versión de IE, muchos programas los vendedores no tienen los recursos para saca al instante nuevas versiones de sus aplicaciones con actualizado páginas internas Con el fin de garantizar que estos existentes las aplicaciones permanecen en funcionamiento, IE8 procesa las páginas que se ejecutan en instancias del control WebBrowser en Modo de estándares IE7 de forma predeterminada.
Aquí debo tener en cuenta que los comentarios en la página dicen que lo anterior es incorrecto, y que " IE8 procesa las páginas que se ejecutan dentro de instancias del control WebBrowser en el modo estricto de IE7 o el modo Quirks por defecto , según el tipo de documento de la página. "
La solución es la siguiente:
Cuando un ejecutable carga una instancia del control WebBrowser escanea el registro para verificar si el ejecutable quiere estándares IE7 o IE8 Modo de estándares.
...
Para ejecutar en el modo de estándares IE8 insertar el siguiente valor de registro:
[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_NATIVE_DOCUMENT_MODE]
"MyApplication.exe"=dword:13880
En ambos casos, MyApplication.exe debe reemplazarse con el nombre del ejecutable que ejecutará controles WebBrowser en un modo especificado.
Entonces suena como el " programático " La solución es escribir una clave en el registro que indique que desea el modo de estándares IE8 para WebBrowser
controles en su aplicación específica.
Otros consejos
Si no desea utilizar la técnica de clave de registro, puede insertar la siguiente etiqueta:
<meta http-equiv="X-UA-Compatible" content="IE=8" />
El " contenido " El atributo fuerza la representación en varios modos.
Lo último que escuché fue que IE8 usaría modo estándar por defecto . ¿Estás viendo un problema real con la última versión beta? ¿Está seguro de que está comenzando en modo peculiar para empezar, sin que un usuario presione explícitamente el botón de vista de compatibilidad ?
Tenga en cuenta que ha habido algunos cambios desde la versión beta, las claves de registro han cambiado de nombre, etc. Lea más aquí .
Esto tiene un código real para hacer esto programáticamente y maneja hasta IE11 hasta ahora: