Registriert seit: 8. Okt 2005
Ort: Schleswig-Holstein
111 Beiträge
Delphi 11 Alexandria
|
AW: auf EdgeBrowser.ExecuteScript warten
27. Jun 2024, 15:36
Das EdgeBrowser1.WebMessageEnabled:=true;
funktioniert bei mir auch nicht. Da gibt es wohl einen Bug beim Setzen der Eigenschaft, vielleicht beim Konvertieren des Delphi-Boolean in den Integer-Wert, den das Interface erwartet. Werde ich mir mal genauer anschauen, denn vielleicht sind noch andere Eigenschaften betroffen.
Aber der Default-Wert ist bereits True, daher müssen wir es hier nicht setzen.
Das DOMContentLoaded bringt Dir wohl nichts, wenn es schon ausgelöst wurde, bevor in Delphi TEdgeBrowser.OnNavigationCompleted aufgerufen wird.
Das Prinzip, auf etwas zu warten und dann per Javascript das Ergebnis per Postmessage zurückzugeben, funktioniert aber.
Man müsste jetzt die Seite genauer kennen und schauen, was sie noch nach dem Laden macht und wann sie tatsächlich fertig ist.
Zum Beispiel in Chrome laden und den Entwicklertools genauer reinschauen.
Nur zum Test kannst Du aber auch mal eine Verzögerung einbauen, z.B. mit einem Timer in Delphi oder per Javascript:
EdgeBrowser1.executescript('setTimeout(() => {chrome.webview.postMessage(document.documentElement.outerHTML);}, "2000");');
Ist der Quelltext dann komplett?
|