[TWebbrowser] Frameset laden
Aloha,
ich habe ein kleines Problem! Und zwar habe ich eine Liste von URLs,die ich in den TWebbrowser laden möchte: http://cmore/browser/frameset.html 2 http://cmore/browser/verweise.html links http://cmore/browser/titel.html rechts Zur Erklärung: Zeile 1: die URL, die in der Adresszeile angezeigt wird. (hier frameset.html) Zeile 2: Die Anzahl Frames Zeile 3: Frame(0) URL Zeile 4: Frame(0) Name Zeile 5: Frame(1) URL Zeile 6: Frame(1) Name Mein Progie macht das so: (oder auch nicht..)
Delphi-Quellcode:
WebBrowser1.Navigate(URL aus Zeile 1);
document := WebBrowser1.document as IHTMLDocument2; if (strtoint(Anzahl Frames) > 1) then for i:=0 to (strtoint(frame_anz)-1) do begin WebBrowser1.Navigate(FrameURL_i , flag , FrameName_i); end; end; Das Problem dabei, er lädt die Datei "frameset.html" nicht,so das die beiden anderen Navigate Anweisungen auch nicht funzen :cry: Hat jemand einen Tip? Oder gar einen ganz anderen Ansatz? Dave PS: ich hatte auch noch eine andere Alternative, da habe ich aber immer den Fehler "Member nicht gefunden" bekommen - sagt euch das etwas? |
Re: [TWebbrowser] Frameset laden
hi,
so wie ich deinen code sehe sollte am ende der ausführung http://cmore/browser/titel.html im twebbrowser erscheinen, so hast du es programmiert. wenn du das frameset laden willst brauchst du nur nach http://cmore/browser/frameset.html zu navigieren, die frames werden doch automatisch von frameset.html geladen. ich verstehe nicht ganz was du vor hast - alle frames in windeseile durchladen? [edit]mal ganz davon abgesehen das 'http://cmore/browser/...' nicht klappen kann[/edit] |
Re: [TWebbrowser] Frameset laden
Moin,
okay eine kleineerläuterung hilft wohl ;) Also es geht um ein Websurf-Protokoll-Tool. Ein User surft mit dem TWebbrowser über eine beliebige Seite, zum Beispiel www.Aldi.de. Im Hintergrund lasse ich einen Timer mitlaufen, der alle 100 ms die Mauskoordinaten und die angezeigte Seite,inklusive Frames und SubFrames und derren Subframes wegspeichert. BSP eines Datensatzes ohne Frames: ---------------------------------------------------------- 560 # mausX 370 # mausY http://www.aldi.de/ #TWebbrowser.URL 0 # Anzahl Frames ---------------------------------------------------------- BSP eines Datensatzes mit Frames: ---------------------------------------------------------- 1644 # mausX 255 # mausY http://germany.aldi.com/cms/ #TWebbrowser.URL 5 # Anzahl Frames http://germany.aldi.com/cms/frameset/blank.html #Frame 1 top # FrameName 1 0 # Anzahl Subframes in Frame 1 http://germany.aldi.com/cms/frameset/blank_1.html # Frame 2 left 0 http://germany.aldi.com/cms/home.html # Frame 3 content 0 http://germany.aldi.com/cms/frameset/blank_3.html # Frame 4 right 0 http://germany.aldi.com/cms/frameset/blank_2.html # Frame 5 bottom 0 ---------------------------------------------------------- Das Wegspeichern ist easy-going 8) Dann kommt der eigentliche Spass, um zu sehen wo lang er gesurft ist, brauche ich halt das Tool. Ich bastel mir einen Form mit TWebbrowser und lese alle 100ms die einen Datensatz ein und mache dann: 1. Setzen der Maus (easy) 2. Laden der TWebbrowser.URL, sofern nicht schon geladen 3. Laden der Frames (sofern nicht schon geladen) 4. Laden der Subframes (sofern nicht schon geladen) Am Ende kann man sich halt das Surfverhalten des Users anschauen als eine Art Video! Geht auch gut, aber sobald Subframes im Spiel sind funzt es nicht mehr :wall: Hast du eine bessere Lösung oder mache ich da strukturell einen Fehler? Hier die Timer Routine (Auszug)
Delphi-Quellcode:
doki,dok,flag,ole_index : OleVariant; Readln(F, x); Readln(F, y); Readln(F, doc); Readln(F, MouseState); Readln(F, frame_anz); //Cursor setzten //Webseite laden if (doc <> old_doc) then begin doki := doc; WebBrowser1.Navigate2(doki); old_doc := doc; end; document := WebBrowser1.document as IHTMLDocument2; if (strtoint(frame_anz) >= 1) then // Seite hat Frames for i:=0 to (strtoint(frame_anz)-1) do begin ole_index := i; Readln(F, frame); Readln(F, Frame_name); Readln(F, frame_in_frame_anz); frame_n := frame_name; doki2 := frame; // Frames laden WebBrowser1.Navigate2(doki2,flag,frame_n); //SubFrames laden for j:=0 to (strtoint(frame_in_frame_anz)-1) do begin ole_index2 := j; Readln(F,frame_in_frame_url); Readln(F, Frame_name); frame_n := Frame_name; doki2 := frame_in_frame_url; WebBrowser1.Navigate2(doki2,flag,frame_n); end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:47 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz