2010-11-14 33 views
7

J'ai besoin d'exécuter certaines fonctions javascript à partir du code Delphi, mais cette fonction échoue si la page n'est pas chargée dans le contrôle Twebbrowser. Le problème est donc que si la page est située dans un tabshet qui n'est pas actif, la page n'est pas chargée tant que la feuille d'onglet n'est pas active.Comment forcer le chargement d'une page dans le contrôle Twebbrowser quand ce n'est pas visible

la question est Comment forcer le chargement d'une page dans un contrôle Twebbrowser lorsque ce n'est pas visible.

pour tester ce comportement vient de mettre un PageControl, avec 2 tabsheets et un TWebBrowser dans la deuxième tabsheet, maintenant en cas oncreate du formulaire mis ce code

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

maintenant lorsque vous exécutez l'application de la La page ne se charge que lorsque le deuxième onglet est visible.

merci d'avance.

+0

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

Répondre

11

Appel WebBrowser1.HandleNeeded; avant d'appeler WebBrowser1.Navigate

+0

Merci beaucoup, fonctionne parfaitement. – Salvador

+0

Trouvé ceci après avoir exactement le même problème. J'ai bien travaillé, merci. –

0

Je ne peux pas reproduire le comportement que vous documentez. J'ai suivi vos instructions un contrôle de page, deux onglets, webbrowser sur deuxième onglet (invisible).

Pour savoir si la page est en cours de chargement, j'ai capturé quelques événements du webbrowser. Je vois que onBeforeNavigate, onTitleChange et OnNavigateComplete tous sont tirés sans avoir à faire de deuxième tabsheet visible.

La définition de votre code javascript à exécuter dans le cadre de l'un de ces événements peut résoudre votre problème.