Einzelnen Beitrag anzeigen

wschrabi

Registriert seit: 16. Jan 2005
437 Beiträge
 
#3

AW: TWebbrowser and Javascript

  Alt 20. Dez 2016, 16:28
DANKE, ich habe keinen EMbeddedWB
BESTEN DANK AUCH FÜR DEIN SCRIPT.
Werde estesten.

Blöde Frage (sorry): Was ist FWB? Woher die Methode ReadyState?

Zitat:
if (lCurWebbrowser = lTopWebBrowser) and
(FWB.ReadyState = READYSTATE_COMPLETE) then begin
BLöde Frage: Was ist ein Embedded WB? Ich kenne nur TWebbrowser in Delphi . Danke für die Aufklärung.

Ich hab das mit dem LADEN so gelöst: (fast gleich)
Delphi-Quellcode:
procedure TForm1.WebBrowser1DocumentCompleteFULL(ASender: TObject;
  const pDisp: IDispatch; const URL: OleVariant);
var
  CurWebrowser: IWebBrowser;
  TopWebBrowser: IWebBrowser;
  Document: OleVariant;
  WindowName: string;
begin
  CurWebrowser := pDisp as IWebBrowser;
  TopWebBrowser := (ASender as TWebBrowser).DefaultInterface;
  if (CurWebrowser = TopWebBrowser) then
    begin
    WebBrowser1DocumentComplete(ASender, pDisp, URL);
    end
  else
  begin
    Document := CurWebrowser.Document;
    WindowName := Document.ParentWindow.Name;
    //ShowMessage(Format('Frame "%s" was loaded', [WindowName]));
  end;
end;
und in WebBrowser1DocumentComplete(ASender, pDisp, URL); arbeite ich die SEite.
Doch da ist JS noch nicht abgearbeitet. Daher meine Frage was mit dem
Zitat:
(FWB.ReadyState = READYSTATE_COMPLETE)
ist.
Wartet er da bis die JS gemacht ist? WOher diese Bool Variable?


Nochwas: Dacht mit sleep(1000) wir alles gewartet auch das Abarbeiten der JS in der Seite. Stimmt das nicht, steht hier:
Zitat:
I had the same problem, and the solution I found is:
this inside it's own form, all it is is a window with text of "Please wait a moment", and because it's showdialog() you freeze all input and code within the thread, but you don't hold up the thread to prevent the loading of the post processed data after documentcompleted is fired.
mfg
Walter

Geändert von wschrabi (20. Dez 2016 um 16:42 Uhr)
  Mit Zitat antworten Zitat