用delphi访问IFRAME src指定的内网页里的内容,即子网页内容,该如何处理

用delphi访问IFRAME src指定的内网页里的内容,即子网页内容
如题,就是读子网页里的内容。
--------------------------
如以下网页a.htm,里面简单的一个框架用到b.htm
<IFRAME src="b.htm" id="objcompentframe"></IFRAME>

1、如何取得b.htm的原码,因为我们要控制的是别的网站的页面
2、在页a.htm打开后,b.htm网页的内容当然也显示出来了,现在我想用delphi可以控制到属于b.htm里的内容,向b.html的编辑框输入内容。


------解决方案--------------------
Delphi(Pascal) code

[code=Delphi(Pascal)]
WebBrowser.oleobject.document.documentelement.document.frames.item(框架索引).document.documentElement.innerHTML
我没有测试,你试试,不知行不行

------解决方案--------------------
function TForm1.GetFrame(FrameNo: Integer; WB: TWebBrowser): IWebbrowser2;
var
OleContainer: IOleContainer;
enum: IEnumUnknown;
unk: IUnknown;
Fetched: PLongint;
begin
while WB.ReadyState <> READYSTATE_COMPLETE do
Application.ProcessMessages;

if Assigned(WB.document) then
begin
Fetched := nil;
OleContainer := WB.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;


function GetWebPage(const Url: string): AnsiString;
var
Session,
HttpFile: HINTERNET;
szSizeBuffer: Pointer;
dwLengthSizeBuffer: DWord;
dwReserved: DWord;
dwFileSize: DWord;
dwBytesRead: DWord;
Contents: PChar;
begin
Session := InternetOpen('',0,niL,niL,0);
HttpFile := InternetOpenUrl(Session,PChar(Url),niL,0,0,0);
dwLengthSizeBuffer := 1024;
while True do
begin
HttpQueryInfo(HttpFile,5,szSizeBuffer,dwLengthSizeBuffer,dwReserved);
GetMem(Contents,dwFileSize);
InternetReadFile(HttpFile,Contents,dwFileSize,dwBytesRead);
if dwBytesRead = 0 then
Break
else
Result := Result + Contents;
end;

InternetCloseHandle(HttpFile);
InternetCloseHandle(Session);
FreeMem(Contents);
end;


试试这个
------解决方案--------------------
这个要具体网页具体分析。控制多个ifram是我的强项。

取一个包含在<IFRAME>标签内的网页源码:
showmessage(Wb1.oleobject.document.documentelement.document.frames.item(0).Document.body.innerHTML)