Ciao a tutti, sto utilizzando il TWebBrowser per eseguire in automatico dei comandi su una mia pagina web. Oltre alla "Navigate", uso il document per eseguire comandi javascript e per fare il download dei contenuti della pagina.
Per far questo però, ho bisogno di sapere con esattezza quando il WebBrowser è occupato, nel senso se sta caricando la pagina, o c'è ancora qualche contenuto che ancora non è pronto (tipo alcune immagini, che si caricano dopo un po' che è pronto il document perchè sono un po' pesanti).
Se eseguo gli script javascript sulla pagina NON pronta completamente, si generano errori e la procedura fallisce.
Uso di continuo questa procedura:
che viene eseguita tra le varie esecuzioni degli script (che ovviamente includono anche dei submit sui form).codice:function TForm3.WaitWB(timeout: Integer): integer; begin while (WB.Busy) or (WB.ReadyState<>READYSTATE_COMPLETE) do Application.ProcessMessages; Sleep(1000); Result := 0; end;
Spesso funziona, ma non sempre... A volte capita che il browser SEMBRA pronto, ma poi qualche script fallisce perchè non trova tutti gli elementi sulla pagina (che evidentemente non è vero che era pronta!)
Mi sapreste suggerire un metodo più efficace che funzioni al 100% ??
Grazie grazie grazie