2010-11-14 6 views
7

ho bisogno di eseguire alcune funzioni javascript dal codice delphi, ma questa funzione fallisce se la pagina non viene caricata nel controllo Twebbrowser. quindi il problema è se la pagina si trova in una tabshet che non è attiva, la pagina non viene caricata fino a quando il tabsheet non diventa attivo.Come forzare il caricamento di una pagina nel controllo Twebbrowser quando questo non è visibile

la domanda è Come forzare caricare una pagina in un controllo Twebbrowser quando questo non è visibile.

per testare questo comportamento basta mettere un PageControl, con 2 tabsheets, e un TWebBrowser nel secondo tabsheet, ora in caso OnCreate del form inserire questo codice

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

ora quando si esegue l'applicazione della la pagina viene caricata solo quando si rende visibile il secondo foglio di lavoro.

grazie in anticipo.

+0

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

risposta

11

chiamata WebBrowser1.HandleNeeded; prima di chiamare WebBrowser1.Navigate

+0

Grazie molto, funziona perfettamente. – Salvador

+0

Trovato questo dopo avere lo stesso identico problema. Ha funzionato alla grande, grazie. –

0

Non riesco a riprodurre il comportamento che si documenta. Ho seguito le tue istruzioni un controllo di pagina, due schede, browser web sulla seconda scheda (invisibile).

Per sapere se la pagina si sta caricando, ho catturato alcuni eventi del browser web. Vedo che onBeforeNavigate, onTitleChange e OnNavigateComplete vengono tutti sparati senza dover rendere visibile il secondo foglio di calcolo.

L'impostazione del codice javascript da eseguire in uno di questi eventi potrebbe risolvere il problema.

Problemi correlati