关于MSHTML (转)

关于MSHTML(转)[@more@]microsoft.com/default.ASP”target=_top>MSDNHome>MSDNLibrary>ProgrammingandR…

大家好,又见面了,我是你们的朋友全栈君。

关于MSHTML (转)[@more@]
microsoft.com/default.

ASP” target=_top>MSDN Home > 
MSDN Library > 
Programming and Reusing the Browser > 
Overviews/Tutorials

关于MSHTML

访问动态HTML(dhtml)对象模型的所有接口以IDispatch为基类,而且也是被用于脚本的对象模型的基础。因此对要操纵对象模型的任何人来说很重要的是熟悉定义在动态的HTML介绍的概要和MSHTML包含的对象模型参考中的结构和功能。

MSHTML参考接口和脚本对象这一节说明了对象如何在DHTML对象模型里面映射到接口。举例来说,使用这一个映射,你可以看到IHTMLDocument2接口映射到文档对象。对接口的进一步的研究说明了如何通过get_put_方法访问对象的属性。对象的方法映射到可用的接口的方法,而且事件可以用标准的对OLE自动化连接点来捕获。

如何使对象模型接口的样例的演示在Colbtn、Driller和WalkAll示例中,这些示例在DOWNLOADs/samples/inte.NET/browser/colbtn/default.asp”>Colbtn示例源代码页面、Driller示例源代码页面WalkAll示例源代码页面上。

  • 使用接口的建议
  • 获得文档接口
  • 使用文档接口
  • 相关的主题

使用接口的建议

通常,在文档中可以用脚本完成的任何事都可以通过使用接口操纵对象模型来完成。因此推荐了在写使用对象模型接口的代码之前, 开发者应该在一个 HTML文档里面使用脚本设计功能原型。

下列HTML例子说明如何用脚本导航文档的all集合而且获得文档的每个元素的标签名字。等价的使用对象模型接口Microsoft (R) Visual C++(R)代码演示在Driller示例源代码页面WalkAll示例源代码页面上。

例子

Page Title

function Loaded()

{

  var c = document.all.length;

  var i;

  for(i = 0; i < c; i++)

  {

  spanTAGS.innerHTML = spanTAGS.innerHTML + document.all.item(i).tagName + “
“;

  }

}

获得文档接口

要开始使用对象模型接口,就要从文档获得IHTMLDocument2接口。一旦你有了这个接口,你就能存取文档中所有的元素。文档接口如何被获得依赖于你的应用程序如何实现。 每一个下列场合需要以不同的方式获得文档接口。

  • 集成MSHTML时
  • 集成浏览器控件的一个实例时。
  • 从一个网页中包含的一个Microsoft ActiveX(R)控件。

集成MSHTML时获得文档接口

当集成一个MSHTML对象的时候,使用 CoCreateInstance创建对象。 一旦创建了对象,你可以调用它的QueryInterface 方法,请求IID_IHTMLDocument2。WalkAll示例源代码页面的WalkAll样例说明了该如何做。

集成浏览器控件时获得文档接口

当集成浏览器控件的时候,执行下列步骤获得文档接口:

  1. 调用 webbrowser/reference/ifaces/iwebbrowser2/document.asp”>IWebBrowser2::get_Document 获得文档的 IDispatch 接口。(译者注:MFC的CHtmlView的GetHtmlDocument方法,浏览器控件的Document属性或者DHtmlEdit控件的dom属性也可以用于获取文档接口)
  2. 调用在前面步骤中获得的IDispatch指针的的QueryInterface,请求IID_IHTMLDocument2。

从ActiveX控件获得文档接口

ActiveX文档的存取动态HTML节解释了如何从ActiveX (R)控件获得文档接口。

使用文档接口

使用文档接口

一旦你获得了文档接口,你就可以使用任何一个IHTMLDocument2接口获得或修改文档的属性。这通常包括从文档包含的不同的元素中得到一些IHTMLElementCollection接口。

一个非常普遍的集合对象是all集合对象。all集合对象是通过使用IHTMLDocument2::all (译者注:原文如此,似乎应该改成get_all)方法获得的。 这个方法返回一个包含文档的所有元素的IHTMLElementCollection接口。然后你可以使用IHTMLElementCollection::item方法枚举元素。 IHTMLElementCollection::item方法为你提供一个你能调用 QueryInterface ,请求IID_IHTMLElement的IDispatch指针。这将会给你一个你能用来为个别的元素获得或设置信息的IHTMLElement接口指针。

大多数的元素提供一个接口操纵那个特定的元素。这些元素相关的接口名字具有IHTMLXXXXElement的格式,这里XXXX是元素的名字。要获得元素相关的接口,可以在IHTMLElement接口上调用QueryInterface,请求被需要的元素相关的接口。举例来说img 元素提供一个 IHTMLImgElement接口以可能用来明确地操纵img元素。要查看可用的元素相关的接口列表,查看接口和脚本对象的接口列表。

相关的主题

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10752043/viewspace-960761/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/10752043/viewspace-960761/

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/126318.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • soapui的菜鸟教程

    soapui的菜鸟教程soapui的菜鸟教程

    2022年6月22日
    90
  • html中table美化,漂亮的css table样式「建议收藏」

    html中table美化,漂亮的css table样式「建议收藏」工作中发邮件通知人员样式总是一个麻烦事,工作的严肃性不能让邮件样式太花哨,但是又不能太简陋,所以找了下面的table样式和大家分享。效果如下图所示:漂亮CSSTables-幸凡学习网body{font:normal11pxauto”TrebuchetMS”,Verdana,Arial,Helvetica,sans-serif;color:#4f6b72;backgroun…

    2022年9月20日
    0
  • javascript格式化输出的实现(MuJS)

    javascript格式化输出的实现(MuJS)MuJS是一款支持嵌入式开发的轻量级javascript解释器。javascript主要是针对web开发的脚本语言,所以主要借助浏览器来调试;但mujs针对的是嵌入式开发,调试时的交互主要靠输入输出终端,javascript本身是不支持的,所以需要调用c语言的打印函数来实现。下面给出两个例子,一个是普通输出,符合脚本语言的解释性语言的特点,不考虑变量的类型;另一个是简单的格式化输出。前一个…

    2025年6月14日
    1
  • 光流法测距

    光流法测距一.基于特征点的目标跟踪的一般方法基于特征点的跟踪算法大致可以分为两个步骤:1)探测当前帧的特征点;2)通过当前帧和下一帧灰度比较,估计当前帧特征点在下一帧的位置;3)过滤位置不变的特征点,余下的点就是目标了。二.光流法1.首先是假设条件:(1)亮度恒定,就是同一点随着时间的变化,其亮度不会发生改变。这是基本光流法的假定(所有光流法变种都必须满足),用于得到光流法基本方程;(2)小运动,这…

    2022年7月23日
    6
  • win10运行cmd拒绝访问_如何拒绝不想回答的问题

    win10运行cmd拒绝访问_如何拒绝不想回答的问题尝试以下方法:1)开启|关闭防火墙(这里需要关闭)sudoufwenable|disable2)开启远程服务在终端界面输入:servicesshdstart。 结果显示:ssh:unrecognizedservice。 输入查看命令:servicesshstatus 显示也是unrecognizedservice。 开启远程服务:终端界面键入:sudo/etc/init….

    2022年9月17日
    0
  • cuda安装错误_n卡图形驱动安装失败

    cuda安装错误_n卡图形驱动安装失败win7安装cuda9时出现图形驱动程序安装失败,解决办法是右键计算机>管理>服务和应用程序>服务>找到“WindowsInstaller”,右键选择“启动”参考自http

    2022年8月4日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号