delphi 从TWebBrowser WebBrowser得到全部html源码(转)

转自:http://blog.csdn.net/webouse/archive/2009/02/19/3912174.aspx

网上查询出很多方法,归结起来有两种

1、使用IPersistStreamInit接口实现,函数名都是function GetHtml(const WebBrowser: TWebBrowser) : string;这个函数确实可以得到全部的html源码,但是里面用到了hHTMLText := GlobalAlloc(GPTR, BufSize); 而没有调用GlobalFree释放hHTMLText ,加上GlobalFree(hHTMLText),但是程序会出错,怪不得没有人加释放的函数。

2、Memo1.Lines.Add(IHtmlDocument2(WebBrowser1.Document).Body.OuterText);这中方法只能得到<head>后面的源码,<head>源码得不到。

以上两种方法都有缺陷,后来从国外的网站上找到了很简单的方法来取得WebBrowser全部html源码的方法,如下

view plaincopy to clipboardprint?
uses mshtml;   
var  
    iall : IHTMLElement;   
begin  
   if Assigned(WebBrowser1.Document) then  
   begin  
     iall := (WebBrowser1.Document AS IHTMLDocument2).body;   
     while iall.parentElement <> nil do  
     begin  
       iall := iall.parentElement;   
     end;   
     memo1.Text := iall.outerHTML;   
   end;   
end;  

转载于:https://www.cnblogs.com/Handll/archive/2012/01/07/2315719.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值