Sorry, aber in meinem vorigen posting war ich wohl nicht ganz bei mir. Hier hast du Code, der funktioniert. Ich habe eine WebBrowser-Komponente auf eine Form gezogen und lade über ein Edit-Feld einen
URL mit Frames.
Delphi-Quellcode:
// uses MSHTML;
procedure TWebForm.LoadButtonClick(Sender: TObject);
begin
with WebBrowser
do
Navigate(Edit.Text);
end;
procedure ShowLinks(
ec: IHTMLElementCollection);
var
v: OleVariant;
u: IUnknown;
anchor: IHTMLAnchorElement;
s: TStrings;
begin
s := TStringList.Create;
v := 0;
while v <
ec.length
do
begin
u :=
ec.item(v, null);
if u.QueryInterface(IHTMLAnchorElement, anchor) = 0
then
s.Add(anchor.href);
v := v + 1;
// so kommst du übrigens an die Click-Methode:
// with anchor as IHTMLElement do click;
end;
ShowMessage(s.Text);
s.Free;
end;
procedure ShowFrames(fc: IHTMLFramesCollection2);
var
v: OleVariant;
win: IHTMLWindow2;
u: IUnknown;
begin
v := 0;
while v < fc.length
do
begin
u := fc.item(v);
if u.QueryInterface(IHTMLWindow2, win) = 0
then
ShowLinks(win.document.links);
v := v + 1;
end;
end;
procedure TWebForm.DemoButtonClick(Sender: TObject);
var
doc: IHTMLDocument2;
begin
doc := WebBrowser.Document
as IHTMLDocument2;
ShowFrames(doc.frames);
end;
Viel Spaß damit.
marabu