Du hattest natürlich recht, "NavigationStarting" ist zu früh. Das hatte auch nur bei den meisten Webseiten geklappt. Aber meiner "Problemwebseite" auch nicht.
OK, ich habe es jetzt nach deinem letzten Post nochmal umgestellt.
Jetzt sieht es so aus:
Delphi-Quellcode:
procedure TForm2.EdgeBrowser1NavigationCompleted(Sender: TCustomEdgeBrowser;
IsSuccess: Boolean; WebErrorStatus: TOleEnum);
begin
if IsSuccess then
begin
StatusBar1.Panels[0].Text := BoolToStr(IsSuccess);
EdgeBrowser1.executescript('setTimeout(() => {chrome.webview.postMessage(document.documentElement.outerHTML);}, "2000");');
end
else
begin
Showmessage('Navigation nicht beendet');
end;
end;
Delphi-Quellcode:
procedure TForm2.EdgeBrowser1ExecuteScript(Sender: TCustomEdgeBrowser;
AResult: HRESULT; const AResultObjectAsJson: string);
var
json: TJSONValue; //neu
begin
json := TJSONObject.ParseJSONValue(AResultObjectAsJson);
WebsiteContent_SL.Text:=json.AsType<string>;
json.Free;
end;
Diese Procedure habe ich entfernt!
Delphi-Quellcode:
procedure TForm2.EdgeBrowser1WebMessageReceived(Sender: TCustomEdgeBrowser;
Args: TWebMessageReceivedEventArgs);
var
WebMessage: PWidechar;
begin
args.ArgsInterface.TryGetWebMessageAsString(PWidechar(WebMessage));
WebsiteContent_SL.Text:=WebMessage;
DatenAbgreifen;
end;
Der aktuelle stand ist, das alles funktioniert.
EdgeBrowser1.executescript('setTimeout(() => {chrome.webview.postMessage(document.documentElement.outerHTML);}, "2000");');
die Zeile richtig eingesetzt und es hat gepasst.