如题,就是读子网页里的内容。
--------------------------
如以下网页a.htm,里面简单的一个框架用到b.htm
<IFRAME src="b.htm" id="objcompentframe"></IFRAME>1、如何取得b.htm的原码,因为我们要控制的是别的网站的页面
2、在页a.htm打开后,b.htm网页的内容当然也显示出来了,现在我想用delphi可以控制到属于b.htm里的内容,向b.html的编辑框输入内容。
--------------------------
如以下网页a.htm,里面简单的一个框架用到b.htm
<IFRAME src="b.htm" id="objcompentframe"></IFRAME>1、如何取得b.htm的原码,因为我们要控制的是别的网站的页面
2、在页a.htm打开后,b.htm网页的内容当然也显示出来了,现在我想用delphi可以控制到属于b.htm里的内容,向b.html的编辑框输入内容。
[code=Delphi(Pascal)]
WebBrowser.oleobject.document.documentelement.document.frames.item(框架索引).document.documentElement.innerHTML
我没有测试,你试试,不知行不行[/code]
我这里的情况是iframe里的一个iframe
而且感觉你的这段代码好象是拿不到b.htm的代码的哦
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;
试试这个
showmessage(Wb1.oleobject.document.documentelement.document.frames.item(0).Document.body.innerHTML)
1.类似定制版的浏览器。读取指定页面。http://news.baidu.com/然后软件上有个登陆窗口。不是在网页上登陆。直接在软件上用“按钮+文本框”登陆百度。
2.读取某网站的页面内容。获取他最新更新的新闻。并且自动刷新网页。在网页上有新闻的时候。弹出消息对话框。告诉我有最新新闻了。能弹出对话框的同时 要是能播放个音乐什么的最好了 。
3.读取网页指定区域。的指定内容。比如网站上的新闻列表。读出来在软件的Webbrowser控件界面上显示。出来。不是直接是浏览器。不需要读取这个页面。只要网页上的一部分内容就好了。
4.我不要再软件上让人看到百度广告等等垃圾消息。只要新闻。每隔20秒自动刷新一次。弹窗对话框或者语音。提示有新的新闻出来了。看看有没有高手有现成的或者类似的源码的。
发给我邮箱:1617822579(at)qq.com 或者联系我qq# 1617822579