![]() |
wissen wenn twebbrowser fertig geladen hat
hi leutz,...also ich hab wiedermal ein kleines problem:)
wie bekomme ich raus wenn der twebbrowser fertig geladen hat? ich meine wenn es entgueltig ist inkl. frames^^ ich habs mit NavigateComplete und DocumentComplete versucht nur leider kein erfolg denn wenn ich das drin habe und das zb mit showmessage verknuepfe bekomme ich massig meldungen aufeinmal._. ich weiss nich wieso aber ich glaube es haengt an den frames,...was denkt ihr denn oder habt ihr bessergesagt ne andere moeglichkeit auf lager?^^ thx an alle die sich ein wenig zeit nehmen;) o0o |
Re: wissen wenn twebbrowser fertig geladen hat
Hi,
das ist genau richtig, du bekommst für jeden einzelnen Frame ein DocumentComplete Event. Es gibt kein Event, was dir sagt, dass die ganze Seite komplett ist. Möglicherweise könntest Du im OnBeforeNavigate einen Zähler hochzählen, und im DocumentComplete wieder runter, wenn er dann 0 ist, ist alles da. Versuch macht klug... Gruss |
Re: wissen wenn twebbrowser fertig geladen hat
0_o keine schlechte idee:D
echt daran hab ich garnich gedacht^^ thx ich versuchs mal, wenn jedoch jemand anders ne andere idee hat waere nich uebel,...da die frames denk ich mal nich ueberall gleiche anzahl habn(mein geiler email provider:D) da o0o |
Re: wissen wenn twebbrowser fertig geladen hat
Zitat:
wenn 2 Frames: OnBeforeNavigate: counter := counter +1 OnBeforeNavigate: counter := counter +1 OnNavigateComplete: counter := counter -1 OnNavigateComplete: counter := counter -1 macht am Ende immer 0 egal wieviele Frames. |
Re: wissen wenn twebbrowser fertig geladen hat
Zitat:
Delphi-Quellcode:
Diese Funktion liest in einem Memo Zeile für Zeile aus und gibt das an ein Eingabefeld auf der Webseite und führt dann den Senden-Button aus.
procedure TForm12.WebBrowser1DocumentComplete(ASender: TObject;
const pDisp: IDispatch; var URL: OleVariant); begin if (WebBrowser1.LocationURL = ComboBox1.Text) and (not FirstEdit) then begin Counter := 0; Btn_Addr.Enabled := True; end; if FirstEdit then begin Counter := Counter + 1; if Counter > Memo1.Lines.Count - 1 then begin if mailcounter <= ComboBox1.Items.Count - 1 then mailcounter := mailcounter + 1; FirstEdit := False; WebBrowser1.Navigate('https://www.domain.de/test.php'); ComboBox1.Text := ComboBox1.Items.Strings[mailcounter]; end else begin Label1.Caption := 'Adresse : ' + IntToStr(Counter) + ' von ' + IntToStr(Memo1.Lines.Count); Webbrowser1.OleObject.document.forms.item(0).elements.item('black_mail').value := memo1.Lines.Strings[counter]; Application.ProcessMessages; WebBrowser1.OleObject.Document.GetElementsByName('bname_add').Item(0).Click; end; end; end; |
Re: wissen wenn twebbrowser fertig geladen hat
@RWarnecke
hmm mit deinem source kann ich iwi nix anfangen ich versteh ihn innerlich nichso^^ aber was noch besser ist ist zu wissen was im frame steht^^ dazu das
Delphi-Quellcode:
procedure TWebForm.DemoButtonClick(Sender: TObject);
var doc: IHTMLDocument2; win: IHTMLWindow2; fc: IHTMLFramesCollection2; u: IUnknown; i: Integer; v: OleVariant; begin doc := WebBrowser.Document as IHTMLDocument2; fc := doc.frames; ShowMessage(Format('frames detected: %d', [fc.Length])); for i := 0 to Pred(fc.length) do begin v := i; u := fc.item(v); if u.QueryInterface(IHTMLWindow2, win) = 0 then ShowMessage(win.document.body.innerHTML) end; end; ok also er zeigt mir den source von meinem lieben frame nur ich bekomme noch en error "access denied" weiss jemand wie ich das wieder klar bekomme ohne error? thx o0o |
Re: wissen wenn twebbrowser fertig geladen hat
[ot]du könntest iwie versuchen ma komplette wörter zu schreibn un vllt n bissel mehr deutsch und weniger inet-slang o_O kthxbye.[/ot]
|
Re: wissen wenn twebbrowser fertig geladen hat
[ot] Begging for translation :gruebel: (oder schreiben wir demnächst gleich in leet?)[/ot]
|
Re: wissen wenn twebbrowser fertig geladen hat
tut mir leid wenn euch mein eigendlicher schreibstil nicht so besonders zusagt...0_o
aber ok wenn euch das so auf den sack geht versuche ich es mal wie ein "normaler". aber leutz achtet doch bitte nicht auf meinen slang^^,...eher wie ich diese felermeldung aus meinem codeschnipsel oben rausbekomme,...waere euch sehr verbunden:) btw in 1337 zu kommunizieren wuerde selbst ich nicht mithalten da ich dann mit kopfschmerzen vom raetseln auf dem boden waelze;) da o0o |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:26 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz