最近弄的东西,需要获得一个网页中所有frame的html代码.

获取frame的源码是在OnDocumentComplete事件的处理函数中进行的.
void OnDocumentComplete(IDispatch *pDisp, VARIANT *URL);
参数 IDispatch *pDisp 是当前完成OnDocumentComplete的browser接口.可以通过判断其与一开始navigate用的webbrowser接口比较,来判断这个documentcomplete消息是主框架发出还是页面
参数URL代表当前发出OnDocumentComplete事件的frame的url,每个frame完成都会发出这个事件,这也是在多frame的页面中会接收到多个OnDocumentComplete消息的原因.
//通过pDisp查询发出当前事件的browser
IWebBrowser2Ptr pWebBrowser2;
hr = pDisp->QueryInterface(IID_IWebBrowser2,(void **)&pWebBrowser2);

//然后从pWebBrowser2获取document
CComPtr<IDispatch> spHTMLDocumentDispath;
hr = pWebBrowser2->get_Document(&spHTMLDocumentDispath);

CComQIPtr<IHTMLDocument2> spHTMLDocument = spHTMLDocumentDispath;
//从spHTMLDocument 中拿body
IHTMLElementPtr spBody = NULL ;
HRESULT hr = pdc->get_body(&spBody);

//用spBody 的get_innerHTML就可以取到frame对应的html代码了
_bstr_t bstrBody;
HRESULT hr = spBody->get_innerHTML(bstrBody.GetAddress());

转载于:https://www.cnblogs.com/Entreri/archive/2012/01/18/2325680.html

如何从OnDocumentComplete事件中获得当前frame的html代码相关推荐

  1. C#(WPF)去除事件中注册的事件处理方法!

    在WPF中,移除一个事件中已经注册的处理方法,看似简单,实际还是很痛苦的一件事情.因为C#的灵活性,定义事件的方法也是多种多样. 我自己定义了一个事件: public event EventHandl ...

  2. 外媒:英国索尔兹伯里事件中受伤警察已重返工作

    中新网1月16日电 据俄罗斯卫星网援引英媒报道,据英国警方消息称,经过10个月的恢复,索尔兹伯里事件中受伤的警察尼克·贝利已重返工作. 资料图:英国威尔特郡警方称,2018年6月30日晚上,一名男子和 ...

  3. 耗时很长的服务器端事件中让客户端得到中间过程信息的合理解决方案

    需求:B/S结构的系统里,用户点一个按钮系统开始发送上千封邮件,要求把发送信息(发送成功数,失败数,剩余数量...)动态实时的反馈给客户. 分析和实施过程当中遇到的问题: 一:最低级的问题 由于客户催 ...

  4. WPF ComboBox_SelectionChange事件中获取当前文本的方法

    2019独角兽企业重金招聘Python工程师标准>>> 现有如下界面: ComboBox的xaml代码如下: <ComboBox x:Name="comboBox&q ...

  5. h5滚动时侧滑出现_H5触摸事件中如何判断用户滑动方向

    这次给大家带来H5触摸事件中如何判断用户滑动方向,H5触摸事件中判断用户滑动方向的注意事项有哪些,下面就是实战案例,一起来看一下. 接口 TouchEvent TouchEvent 是一类描述手指在触 ...

  6. BCB key事件中判断Shift、Alt、Ctrl状态

    BCB key事件中判断Shift.Alt.Ctrl状态: 类似此事件中 void __fastcall TForm1::keydown(TObject *Sender, WORD &Key, ...

  7. 在.NET2.0中如何更简单的使用委托将方法加载到事件中去

    我们知道在System命名空间中,.NET为我们提供了EventHandler的委托,它的原型是delegate void EventHandler(object sender,EventArgs e ...

  8. ArcEngine的鼠标事件中按键判断~

    我们都知道,在.Net的鼠标事件中判断鼠标事件方法如下(以button为例): Private Sub Button1_MouseDown(ByVal sender As System.Object, ...

  9. 归纳DOM事件中各种阻止方法

    前言 在复习事件这块的时候,发现了一个问题,网上很多文章对事件阻止这块解析的并不全面,并且有些文章也有错误之处,于是想自己总结一下,也方便自己的复习. 知识预热 事件冒泡和捕获 在看本篇文章之前,需要 ...

最新文章

  1. 配置DNS辅助服务器:DNS系列之四
  2. beetl 页面标签_05.Beetl标签函数以及定界符、占位符介绍---《Beetl视频课程》
  3. recvfrom 无法接收 icmp 差错数据包_利用ICMP隧道技术实现C2通信
  4. postfix 过滤中文内容
  5. set+线段树 Codeforces Round #305 (Div. 2) D. Mike and Feet
  6. 面试-8种 常用数据结构总结
  7. 数学建模overleaf模板_数学建模论文模板及套路
  8. Java 如何保证线程安全,你真的清楚吗
  9. Mapbox使用之glyphs(字体符号)
  10. 跟铁拐李李老师学习工作流的第一天
  11. 音视频入门系列-服务器篇(nginx-rtmp 的部署)
  12. WinEdt Latex 在字母上加两个点
  13. 网页开发学习(一):制作一份邀请函
  14. Linux中如何让命令在后台运行
  15. 修改功能测试的测试点
  16. 图像处理学习笔记-05-图像复原与重建1
  17. python 可以根据元素值删除的是_python中删除某个元素的方法解析
  18. 全景丨0基础学习VR全景制作,平台篇第17章:热点功能-视频
  19. 惯性力偶矩公式中j_惯性力偶矩的计算 惯性力偶矩的计算方法
  20. 基于ssm美食推荐管理系统获取(java毕业设计)

热门文章

  1. python mqtt broker_python Mqtt 的安装及使用
  2. SpringBoot笔记-注册后发送邮箱点击激活(异步)
  3. Qt工作笔记-列表的分页显示(Qt Widgets框架)
  4. 计算机图形几个小常识
  5. firefox使用掘金插件_久等了,这款知名浏览器下载插件终于上线Chrome版本!
  6. zabbix安装部署windows_Zabbix监控windows部署安装
  7. mysql unsigned 溢出_mysql unsigned 用法及相减出现补数溢出解决方法 | 学步园
  8. springboot集成druid_绝了!Dataway让SpringBoot不在需要Controller、Service、DAO等了
  9. android底层oem,Android中如何实现OEM
  10. jackson驼峰转下划线注解_jackson序列化与反序列化的应用实践