uses MSHTML;procedure TForm1.Button1Click(Sender: TObject); var doc,frm: IHTMLDocument2; iw: IWebbrowser2; i: integer; begin doc := WebBrowser1.Document as IHTMLDocument2; for i := 0 to doc.frames.length-1 do begin iw := GetFrame(i); frm := iw.Document as IHTMLDocument2; Memo1.Lines.Add('============== Frame ' + IntToStr(i) +' =================='); Memo1.Lines.Add(frm.body.outerHTML); end; end;function TForm1.GetFrame(FrameNo: Integer): IWebbrowser2; var OleContainer: IOleContainer; enum: IEnumUnknown; unk: IUnknown; Fetched: PLongint; begin while Webbrowser1.ReadyState <> READYSTATE_COMPLETE do Application.ProcessMessages; if Assigned(Webbrowser1.document) then begin Fetched := nil; OleContainer := Webbrowser1.Document as IOleContainer; OleContainer.EnumObjects(OLECONTF_EMBEDDINGS, enum); Enum.Skip(FrameNo); Enum.Next(OLECONTF_EMBEDDINGS, Unk, Fetched); Result := Unk as IWebbrowser2; end else Result := nil; end;
谢谢 ailibuli(愛理不理) :按你的办法搞定.结贴.
要是想取得webbrowser frame 中 frame 嵌套 frame(b1,b2,c1,c2) HTML的原代码? 三重关系 关系图 a / \ b c / \ / \ b1 b2 c1 c2 那我应该怎样做,最近为很头痛,是因为看过很多帖,但是没有找到方法,希望各位能教我一下,谢了
begin
memo1.Text:=IHtmlDocument2(WebBrowser1.Document).Body.outerText;
end;
var
doc,frm: IHTMLDocument2;
iw: IWebbrowser2;
i: integer;
begin
doc := WebBrowser1.Document as IHTMLDocument2;
for i := 0 to doc.frames.length-1 do
begin
iw := GetFrame(i);
frm := iw.Document as IHTMLDocument2;
Memo1.Lines.Add('============== Frame ' + IntToStr(i) +' ==================');
Memo1.Lines.Add(frm.body.outerHTML);
end;
end;function TForm1.GetFrame(FrameNo: Integer): IWebbrowser2;
var
OleContainer: IOleContainer;
enum: IEnumUnknown;
unk: IUnknown;
Fetched: PLongint;
begin
while Webbrowser1.ReadyState <> READYSTATE_COMPLETE do
Application.ProcessMessages;
if Assigned(Webbrowser1.document) then
begin
Fetched := nil;
OleContainer := Webbrowser1.Document as IOleContainer;
OleContainer.EnumObjects(OLECONTF_EMBEDDINGS, enum);
Enum.Skip(FrameNo);
Enum.Next(OLECONTF_EMBEDDINGS, Unk, Fetched);
Result := Unk as IWebbrowser2;
end
else
Result := nil;
end;
关系图
a
/ \
b c
/ \ / \
b1 b2 c1 c2
那我应该怎样做,最近为很头痛,是因为看过很多帖,但是没有找到方法,希望各位能教我一下,谢了