delphi 从TWebBrowser WebBrowser得到全部html源码


本文整理自网络,侵删。

 
网上查询出很多方法,归结起来有两种
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源码的方法,如下

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;  
 
 
简单吧,其实和上面的第二种方法相似,只不过是先回退到根节点再取outerHTML.

相关阅读 >>

Delphi操作文本文件简介

Delphi 域名转ip并判断ip是否可以联通 复制代码

Delphi 实现文件拖放完整代码

Delphi 字符串转换为16进制整数 整数转换为16进制字符串

Delphi 限制窗体大小的最大值与最小值

Delphi xe2模拟键盘按键

Delphi access 加密方法

Delphi 遍历所有edit控件

Delphi控制程序在任务栏显示与隐藏

Delphi enumwindows 获取窗体句柄 进程id 窗体信息

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...