Einzelnen Beitrag anzeigen

herik

Registriert seit: 17. Okt 2007
Ort: Spitzkunnersdorf / Sachsen
15 Beiträge
 
Delphi 11 Alexandria
 
#12

AW: auf EdgeBrowser.ExecuteScript warten

  Alt 28. Jun 2024, 09:18
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.
Erik
  Mit Zitat antworten Zitat