Zitat von
marabu:
Ganz klar: Bevor die JS-Funktion nicht in das Document Object Model eingebaut worden ist, kannst du auf sie nicht zugreifen - das ergibt sich bereits aus meinem Beispiel-Code. Nur mit dem Event OnDocumentComplete bist du auf der sicheren Seite, da auch die JS-Funktion auf
DOM-Elemente zugreifen könnte, die ja erst vom Parser analysiert sein müssen. Ob ich schon vor dem OnDocumentComplete auf Teile des
DOM zugreifen kann, habe ich nie ausprobiert, aber ich vermute, dass WebBrowser.Document erst aktualisiert wird, wenn das neue
DOM vollständig aufgebaut ist.
Eine Beschleunigung könnte ich mir vorstellen, wenn der Browser viele Bilder o.ä. nachlädt: Du könntest ihn anweisen das zu unterlassen.
Was sind denn die Eckdaten wie Seitengröße, Übergangszeiten zwischen den ReadyStates, ... ?
Geht es um eine ganz spezielle Seite oder suchst du nach einer allgemeinen Lösung?
Ja, es handelt sich um eine spezifische Webseite.
Es werden nicht viele Bilder geladen.
Ich mache es jetzt so. Im OnProgress Ereignis wird überprüft, ob das Script IDispatch
verfügbar ist und dann wird die Funktion aufgerufen.
Die Funktion wird nun ausgeführt, bevor die Webseite vollständig geladen wurde.
Delphi-Quellcode:
if Assigned(Document) then
if Assigned(Document.Script) then
begin
... JF-Funktion ausführen
end;