Pregunta

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

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

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

¿Fue útil?

Solución

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 de estándares IE9, independientemente de la directiva! Doctype.
  • 9000 (0x2328) -Internet Explorer 9.Las páginas web que contienen las directivas de DOCTYPE basadas en estándares se muestran en modo IE9.
  • 8888 (0x22B8) -Lospage se muestran en el modo de estándares IE8, independientemente de la directiva! Doctype.
  • 8000 (0x1F40) - Páginas web que contienen directivas de DOCTYPE basadas en estándares se muestran en modo IE8.
  • 7000 (0x1B58) - Páginas web que contienen las directivas de DOCTYPE basadas en estándares se muestran en el modo de estándares IE7.

Los documentos completos:

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

Otros consejos

control WebBrowser usará cualquier versión de IE ha instalado, pero por razones de compatibilidad que hará que las páginas en modo IE7 Normas por defecto.

Si usted quiere tomar ventaja de las nuevas características de IE9, se debe añadir el <meta http-equiv="X-UA-Compatible" content="IE=9" > etiqueta meta dentro de la etiqueta <head> de su página HTML.

Esta etiqueta meta debe añadirse antes de cualquier vínculo con CSS, archivos JavaScript, etc., que también están en su <head> Para que funcione correctamente, aunque (sólo <meta> otras etiquetas o la etiqueta <title> puede venir antes).

Una alternativa es añadir una entrada de registro a:

  

HKLM> Software> Microsoft> Internet Explorer> principal> FeatureControl> FEATURE_BROWSER_EMULATION

Y en no añadir 'myApplicationName.exe' con el valor '9000' para forzar el control WebBrowser para páginas de la pantalla en el modo de IE9. Aunque hay otros valores que se pueden utilizar también también, nota que estos documentos no son del todo exacto, ya que no parece posible conseguir una página para hacer en IE 8 modo de cualquier valor que se utiliza.

La adición de la clave de registro en la misma ruta en HKCU en lugar de HKLM también el trabajo - esto es útil como escribir a HKLM requiere privilegios de administrador en tanto que no lo hace HKCU.

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

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

Sin esto, ninguno de los informes que había sido generadora que funcionaría puesto IE9 instalar a pesar de haber funcionado muy bien en IE8. Ellos se muestran correctamente en un control de navegador web, pero no serían letras que faltan, disparaban porque el espacio en blanco, etc., cuando llamé .PRINT (). Eran sólo HTML básico que debe ser capaz de ser dictada incluso en mosaico. je No sé por qué el modo de compatibilidad IE7 iba loco. En particular, se podría .PRINT () la misma página 5 veces y tiene que ser faltan letras diferentes cada vez. Sería incluso llevar encima en PDF de salida, por lo que es sin duda el navegador.

Una nota acerca de Windows de 64 bits que parece hacer tropezar a unas cuantas personas. Si la aplicación se ejecuta en Windows de 64 bits, es probable que tenga que establecer el valor DWORD bajo [HKLM \ SOFTWARE \ Wow6432Node \ Microsoft \ Internet Explorer \ Main \ FeatureControl \ FEATURE_BROWSER_EMULATION] en su lugar.

Sólo para estar completa ...

Para OS de 32 bits debe agregar una entrada de registro a:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION

******* O *******

Para OS de 64 bits debe agregar una entrada de registro a:

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION

Esta entrada debe ser un DWORD, con el nombre es el nombre de su ejecutable, que aloja el control WebBrowser; es decir:.

myappname.exe (no utilice "Contoso.exe", como en la página web de MSDN ... es sólo un nombre de marcador de posición)

luego darle un valor DWORD, de acuerdo con la tabla en:

http: // MSDN. microsoft.com/en-us/library/ee330730(v=vs.85).aspx#browser_emulation

He cambiado a 11001 decimal o hexadecimal 0x2AF9 --- (IE 11 emulación), ya que no es el valor por defecto. (Si tiene instalado IE 11 - o cualquiera de sus versiones)

Ese artículo de MSDN contiene notas sobre varios otros cambios en el registro que afecta a Internet Explorer comportamiento del navegador web.

Sé que este hilo es viejo y ya hay respuestas integrales.

En caso de que no sabe esto:

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

Usted no tiene que codificar el número de versión de IE como

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

Estoy totalmente de acuerdo con la solución aportada, pero creo que una pequeña aclaración es importante que pienso, podría ser necesario.

Para cada proceso (leer también: vshost.exe, yourWinformApplication.exe.svchost, o el nombre de su aplicación.exe) que tendrá que añadir un valor DWORD con el valor proporcionado, en mi caso lo dejo 9000 (en decimal ) en nombre de la aplicación y funcionando sin problemas y la escritura sin errores.

El error más común es creer que es necesario añadir "contoso.exe" tal como está y creo que todo el trabajo!

Sí, utiliza el control WebBrowser cualquier versión de IE que haya instalado. Estos medios, por supuesto, que si se ejecuta la aplicación en un equipo con Internet Explorer 8, entonces el IE 9 Características del que depende el no estará disponible.

Me vino a esta solución y no funcionó para mí! Porque estaba usando 64 bits que tenía que reemplazar el Registro:

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION

En lugar de la que todos hablan de:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION]

Me gusta el código (C #) en la siguiente que establece la configuración del registro para su aplicación. No estoy seguro si se corte después de la instalación, aunque si se requieren permisos. Para mí resuelto un problema con WebSocket no estar disponibles dentro de un control WebBrowser en WPF.

C # Ajax navegador web llamada

Tuve el mismo problema y las respuestas del registro aquí no funcionaron.

Tenía un control de navegador en la nueva versión de mi programa que funcionó bien en XP, pero falló en Windows 7 (64 bits).La versión anterior funcionaba tanto en XP como en Windows 7.

La página web que se muestra en el navegador utiliza algún complemento extraño para mostrar mapas SVG antiguos (creo que es un subprograma de Java).

Resulta que el problema está relacionado con la protección DEP en Windows 7.

Las versiones anteriores de dotnet 2 no establecían el indicador DEP requerido en el exe, pero a partir de dotnet 2, SP 1 en adelante sí lo hacían (sí, el comportamiento de compilación y, por lo tanto, el comportamiento de tiempo de ejecución del exe cambiaron dependiendo de en qué máquina se compiló, bueno. ..).

Está documentado en un blog de MSDN. NXCOMPAT y el compilador de C#.Citar : Sin duda, esto sorprenderá a algunos desarrolladores... descargue un paquete de servicios de marco, vuelva a compilar, ejecute su aplicación y ahora obtendrá excepciones IP_ON_HEAP.

Al agregar lo siguiente a la compilación posterior en Visual Studio, se desactiva DEP para el archivo ejecutable y todo funciona como se esperaba:

all "$(DevEnvDir)..\tools\vsvars32.bat"
editbin.exe /NXCOMPAT:NO "$(TargetPath)"

Respecto a la respuesta aceptada de Whitehawk.Sólo estoy tratando de agregar un poco de experiencia práctica.Solo estaba intentando agregar un comentario, pero SO se queja de que es demasiado largo.

Básicamente, sin IE 9 instalado, el modificador de registro FEATURE_BROWSER_EMULATION no funcionará EN ABSOLUTO.

Por ejemplo, en mi propia experiencia hoy, estaba intentando que .net webcontrol funcionara con el modo IE10 porque un html que estoy intentando renderizar no funciona con .netControl en VS2012, y ni siquiera funciona cuando cargo el html en IE8. directamente, todavía CSS no se representará correctamente (incluso después de que diga permitir contenido bloqueado).Pero probé el mismo html correctamente con IE10 en la máquina win 8 de un amigo.Es por eso que estoy intentando configurar .net webControl en modo IE 10 pero sigo fallando...

Ahora me di cuenta de que esto se debe a que mi máquina Win 7 solo tiene IE8 instalado, por lo que independientemente del valor que establezca en el interruptor FEATURE_BROWSER_EMULATION (valor en IE9, IE10 IE11), ¡simplemente no funcionará EN ABSOLUTO!

Luego descargué e instalé IE 10 en mi máquina Win 7.Aún así no funciona, luego agregué FEATURE_BROWSER_EMULATION, ¡comenzó a funcionar!

También noté que, independientemente del valor que establecí, incluso lo configuré en el valor 0 de forma predeterminada, webControl todavía usa el modo IE 10, que todavía funciona para mí.

Entonces, para resumir, si tiene IE X instalado, pero desea que su Control web .NET funcione en IE (X+N) N> 0 MODO, Dos cosas necesitas hacer:

  1. Vaya al sitio web de MS e descargue e instale IE (x+n) en su máquina, deberá reiniciar después de la instalación.

  2. Aplicar la respuesta de Whitehawk.

Básicamente:Para controlar el valor de esta característica mediante el registro, agregue el nombre de su archivo ejecutable a la siguiente configuración y establezca el valor para que coincida con la configuración deseada.

HKEY_LOCAL_MACHINE (or HKEY_CURRENT_USER)
   SOFTWARE
      Microsoft
         Internet Explorer
            Main
               FeatureControl
                  FEATURE_BROWSER_EMULATION
                     contoso.exe = (DWORD) 00009000

Windows Internet Explorer 8 y posterior.La característica FEATURE_BROWSER_EMULATION define el modo de emulación predeterminado para Internet Explorer y admite los siguientes valores.

Descripción del valor

  • 11001 (0x2AF9Internet Explorer 11.Las páginas web se muestran en el modo IE11 Edge, independientemente de la directiva! Doctype.

    11000 (0x2AF8) IE11.Las páginas web que contienen las directivas de DOCTYPE basadas en estándares se muestran en el modo IE11 Edge.Valor predeterminado para IE11.

    10001 (0x2711)Internet Explorer 10.Las páginas web se muestran en el modo de estándares IE10, independientemente de la directiva! Doctype.

    10000 (0x02710)Internet Explorer 10.Las páginas web que contienen las directivas de DOCTYPE basadas en estándares se muestran en el modo de estándares IE10.Valor predeterminado para Internet Explorer 10.

    9999 (0x270F) WindowsInternet Explorer 9.Las páginas web se muestran en el modo de estándares IE9, independientemente de la directiva! Doctype.

    9000 (0x2328)Internet Explorer 9.Las páginas web que contienen las directivas de DOCTYPE basadas en estándares se muestran en modo IE9.Valor predeterminado para Internet Explorer 9.

    Importante en Internet Explorer 10, las páginas web que contienen las directivas de DOCTYPE basadas en estándares se muestran en el modo de estándares IE10.

    8888 (0x22b8) Las páginas web se muestran en el modo de estándares IE8, independientemente de la directiva! Doctype.

    8000 (0x1f40) Las páginas web que contienen las directivas basadas en estándares! DOCTYPE se muestran en modo IE8.Valor predeterminado para Internet Explorer 8 Importante en Internet Explorer 10, páginas web que contienen las directivas de DOCTYPE basadas en estándares se muestran en el modo de estándares IE10.

    7000 (0x1b58) Las páginas web que contienen las directivas basadas en estándares!Valor predeterminado para aplicaciones que aloja el control WebBrowser.

referencia completa aquí

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top