我这里是在WinForm程序中通过WebBrowser实现Form窗体与HTML页面之间调用。在这个过程中需要在Form窗体后台对Html对象进行处理。下面来看怎么实现:
1.添加对系统Com组件的引用,如下图
不过建议把Microsoft.mshtml.DLL这个DLL从系统中拷贝出来放到程序的debug路径下,然后添加引用,这样是为了防止在系统没有该COM组件时程序不能运行。
2.创建IHTMLDocument对象:在创建对象前需要设置引用的属性,选择引用的dll——右键属性——签入互操作类型——设置为false。代码如下
IHTMLDocument2 htmlDoc = new HTMLDocumentClass();//声明并实例化IHTMLDocument2的对象
htmlDoc.write(pagehtml);//写入HTML文本
IHTMLDocument3 htmlDocument3 = htmlDoc as IHTMLDocument3;//声明并实例化IHTMLDocument2的对象
IHTMLElementCollection tableObjects = htmlDocument3.getElementsByTagName("table");//获取文本中的所有table对象
3.注意,如果想修改对象,必须重复按照第二步重新定义IHTMLDocument对象,把设置好的对象的html再复制给原对象。