如何取得WebBrowser所打开的网页的源码?

lzf913 2005-01-19 11:42:48
比如将以下html源码保存为一个htm文件,然后用WebBrowser打开,我想得到他的源码,得到的源码要求和使用鼠标右键点击“查看源文件”菜单的一样

<html>
<frameset border=0 frameborder=0 frameSpacing=0 rows=100%>
<frame marginHeight=5 marginWidth=10 name=mainsoft src="http://www.sunroom.com.cn/index.asp?rec=700_32">
</frameset>
</html>
...全文
778 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
蒋晟 2005-01-23
  • 打赏
  • 举报
回复
查看源文件会显示当前活动框架的源文件。
参考http://www.euromind.com/iedelphi/embeddedwb/framefunctions.htm
cnhxjtoa 2005-01-19
  • 打赏
  • 举报
回复
思路:
隐藏执行IE中,查看---源文件---将其存为文本文件----复制本文本文件到你指定的地方后---删除这个文件

不知道能不能实现!!!
cnhxjtoa 2005-01-19
  • 打赏
  • 举报
回复
解决了吗
CDSoftwareWj 2005-01-19
  • 打赏
  • 举报
回复
发消息!!

看我这个帖子里的

http://community.csdn.net/Expert/TopicView3.asp?id=3720280
lzf913 2005-01-19
  • 打赏
  • 举报
回复
to aiirii(ari-爱的眼睛)
经测试,这两个方法得到的源码还是和原来一样,
<html>
<frameset border=0 frameborder=0 frameSpacing=0 rows=100%>
<frame marginHeight=5 marginWidth=10 name=mainsoft src="http://www.sunroom.com.cn/index.asp?rec=700_32">
</frameset>
</html>
和“查看源文件”菜单得到的不一样
aiirii 2005-01-19
  • 打赏
  • 举报
回复
get/save the HTML Code from a TWebbrowser?

uses
ActiveX;

function WB_SaveHTMLCode(WebBrowser: TWebBrowser; const FileName: TFileName): Boolean;
var
ps: IPersistStreamInit;
fs: TFileStream;
sa: IStream;
begin
ps := WebBrowser.Document as IPersistStreamInit;
fs := TFileStream.Create(FileName, fmCreate);
try
sa := TStreamAdapter.Create(fs, soReference) as IStream;
Result := Succeeded(ps.Save(sa, True));
finally
fs.Free;
end;
end;

function WB_GetHTMLCode(WebBrowser: TWebBrowser; ACode: TStrings): Boolean;
var
ps: IPersistStreamInit;
ss: TStringStream;
sa: IStream;
s: string;
begin
ps := WebBrowser.Document as IPersistStreamInit;
s := '';
ss := TStringStream.Create(s);
try
sa := TStreamAdapter.Create(ss, soReference) as IStream;
Result := Succeeded(ps.Save(sa, True));
if Result then ACode.Add(ss.Datastring);
finally
ss.Free;
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
WB_SaveHTMLCode(Webbrowser1, 'c:\test.txt');
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
WB_GetHTMLCode(Webbrowser1, Memo1.Lines);
end;
lzf913 2005-01-19
  • 打赏
  • 举报
回复
我要求的是和“查看源文件”菜单得到的完全一样,要不然我也不会上来问了
lxlzq 2005-01-19
  • 打赏
  • 举报
回复
是可能不一样,这样得到的原代码更精确,是网上真正的代码
terrytzq 2005-01-19
  • 打赏
  • 举报
回复
up!
lzf913 2005-01-19
  • 打赏
  • 举报
回复
楼上的,你试过没有呢?用这种方法得到的html源码和“查看源文件”菜单得到的完全不一样
lxlzq 2005-01-19
  • 打赏
  • 举报
回复
web:twebbrowser;
.....
memo1.Lines.Text:=IHtmlDocument2(web.document).body.outerHTML;
....
lzf913 2005-01-19
  • 打赏
  • 举报
回复
to jackie168(花好月圓)
上面提到可以用
SendMessage(vHandle, WM_COMMAND, IDM_VIEWSOURCE, 0);
得到源文件,不知具体如何实现呢?
jackie168 2005-01-19
  • 打赏
  • 举报
回复
还是蛮多人在研究这东东的 ̄ ̄ ̄

http://community.csdn.net/Expert/TopicView3.asp?id=3720280
  • 打赏
  • 举报
回复
if find (frameset ) then

...

5,386

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧