1、关于MSHTML
MSHTML是微软公司的一个COM组件,该组件封装了HTML语言中的所有元素及其属性,通过其提供的标准接口,可以访问指定网页的所有元素。
MSHTML对象模型是由一些对象和集合组成的.处于根部的是HTML,描述了打开页面的1个窗口,包括一系列集合和对象。如Frames集合,History,Location,Navigator,Document,Vi—sum,Event对象等.其中描述呈现在客户窗口实际网页的是Document对象。由一系列的属性、方法、对象和集合组成。
其中All集合中包含网页中所有标记(Tag)元素,其主要的方法和属性有:
Length(长度):即标记出现的个数,可以把标记的集合理解为从0开始的一维数组,其次序按照标记在网页位置排列;
Tags(标记):用于过滤出给定标记的集合,如Doc.Al1.Tags§得到所有分段标记P;
Item(项目):用于选择集合中的某1个元素,如object.item(0)得到集合的第1个元素,而object.item(i)得到第i+1个元素.
此外,IHTMLElement也是个常用的集合对象,代表网页中指定标记的集合,通过这个集合对象,可以得到网页上特定标记的内容。
IHTMLElement有4个主要属性:
InnerText:开始标记和结束标记之间的文本;
InnerHTML:开始标记和结束标记之间的文本和HTML;
OuterText:对象的文本;
OuterHTML:对象的文本和HTML.
2、IHTMLDocument、Ihtmldocument2-5的区别
IHTMLDocument2-5 是 IHTMLDocument的一个高版本实现,它扩展基本的 IHTMLDocument COM 接口并定义某些新功能,如 IFrame 和 ExecVerb 等。可以认为支持3的对象肯定支持2,微软的东西一般是某个接口新加了方法,后面就加数字2、3、4什么的,以保证以前的接口不被修改,具体不同看MSHTML_TLB里的定义了。一般来说,用的比较多、浏览器兼容较好的是IHTMLDocument、Ihtmldocument2。
3、Ihtmldocument2对象的 document.execCommand()方法。
常用语法格式 如下:
代码 :
document.execCommand(sCommand[,交互方式, 动态参数 ])
document.execCommand("2D-Position","false","true");
其中:sCommand为指令参数(如下例中的"2D-Position"),交互方式参数如果是true的话将显示对话框,如果为false的话,则不显示对话框(下例中的"false"即表示不显示对话框),动态参数一般为一可用值或属性 值(如下例中的"true")。
调用execCommand()可以实现浏览器菜单 的很多功能. 如保存文件 ,打开新文件,撤消、重做操作…等等. 有了这个方法,就可以很容易的实现网页中的文本编辑器.。如果灵活运用,可以很好的辅助我们完成各种项目。
使用的例子如下:
〖全选〗命令的实现
document.execCommand("selectAll")
[说明]将选种网页中的全部内容!
[举例]在之间加入:
<a href="#" onclick