2010-11-14 7 views
7

necesito ejecutar algunas funciones de JavaScript desde el código delphi, pero esta función falla si la página no está cargada en el control Twebbrowser. entonces el problema es que si la página está ubicada en un tabulador que no está activo, la página no se carga hasta que la hoja de registro se active.Cómo forzar cargar una página en el control Twebbrowser cuando esto no está visible

la pregunta es Cómo forzar cargar una página en un control Twebbrowser cuando esto no está visible.

para probar este comportamiento sólo hay que poner un PageControl, con 2 tabsheets, y una TWebBrowser en la segunda TabSheet, ahora en el evento OnCreate de la forma de poner este código

WebBrowser1.Navigate('http://stackoverflow.com'); 

ahora cuando se ejecuta la aplicación del La página solo se carga cuando hace visible la segunda hoja de registro.

gracias de antemano.

+0

Relacionados - http://stackoverflow.com/questions/2070084/delphi-missing-ui-control-on-tab-why-calling-handleneeded-fixes-it –

Respuesta

11

llamada WebBrowser1.HandleNeeded; antes de llamar WebBrowser1.Navigate

+0

Gracias mucho, funciona perfecto – Salvador

+0

Encontrado esto después de tener exactamente el mismo problema. Funcionó muy bien, gracias. –

0

No puedo reproducir el comportamiento que documenta. He seguido sus instrucciones con un control de página, dos pestañas, navegador web en la segunda pestaña (invisible).

Para saber si la página se está cargando, tengo capturar algunos eventos del navegador web. Veo que onBeforeNavigate, onTitleChange y OnNavigateComplete son despedidos sin tener que hacer que la segunda hoja de registro sea visible.

Establecer su código de javascript para ejecutar en uno de esos eventos puede resolver su problema.

Cuestiones relacionadas