2010-10-18 11 views
5

Encontré un comportamiento extraño en el componente TwebBrowser, cuando cargo ciertas páginas las muestran con fuentes más grandes. diferente de lo que se usa en Internet Explorer.Página de carga de TWebrowser con fuentes grandes

ver estas imágenes de muestra

aquí en este enlace http://docwiki.embarcadero.com/RADStudio/en/Main_Page se carga con fuentes más grandes en TWebBrowser y con fuentes pequeñas (otro estilo) en el IE.

alt text

esta página https://stackoverflow.com/ se carga con el mismo estilo en el componente TWebBrowser e IE.

alt text

Lo he probado en diferentes máquinas y sucede lo mismo.

¿Cómo puedo solucionar este problema? este es un problema con un CSS?

Respuesta

1

Creo que el problema es que el componente TWebBrowser ejecuta Internet Explorer en modo de compatibilidad. De hecho, si abre la página docwiki en Internet Explorer 8 y posterior, las fuentes son pequeñas y agradables, a diferencia de cómo se ven en el TWebBrowser. Pero si hace clic en el botón "Vista de compatibilidad" en la ventana de Internet Explorer, obtendrá el mismo texto grande que obtiene en el componente TWebBrowser. (. Es bien sabido que IE6 utilizar texto demasiado grande)

Según this MSDN blog entry y the MSDN docs, para controlar el modo de compatibilidad del control TWebBrowser, utilizar el registro:

procedure TForm3.FormCreate(Sender: TObject); 
begin 

    with TRegistry.Create do 
    try 
     RootKey := HKEY_CURRENT_USER; 
     if OpenKey('Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION', true) then 
     WriteInteger(ExtractFileName(Application.ExeName), 8888); 
    finally 
     Free; 
    end; 

    WebBrowser1.Navigate('http://docwiki.embarcadero.com/RADStudio/en/Main_Page'); 
end; 

Los valores son 8000, 7000 y 8888 para "IE8 Standards Mode", "IE7 Standards Mode" y "IE8 Standards Mode (Forced)", respectivamente. Por lo tanto, el código anterior forzará el modo de estándares IE8.

Sorprendentemente, sin embargo, establecer el modo en estándar solo hará que la fuente sea aún mayor.

+0

Andreas, gracias por su comentario sobre el 'modo de compatibilidad', pero ¿por qué algunas páginas se ven con el mismo estilo y fuente cuando se ejecutan en' modo de compatibilidad'? – Salvador

0

que normalmente solucionar esto mediante el establecimiento de la ZOOM:

WebBrowser1.ExecWB(OLECMDID_ZOOM, OLECMDEXECOPT_DONTPROMPTUSER, zoom); 

Es necesario utilizar OLECMDID_GETZOOMRANGE para determinar los rangos válidos para zoom. Lea los comentarios en MSDN documentation para obtener más información.

Cuestiones relacionadas