MSHTML是微软公司的一个COM组件,该组件封装了HTML语言中的所有元素及其属性,穿越其供给的规范接口,能够访问指定网页的所有元素.
MSHTML对象模型是由一些对象和聚集构成的.处于根部的是HTML,描写了敞开版面的1个窗口,包括一系列聚集和对象。如Frames聚集,History,Location,Navigator,Document,Vi—sum,Event对象等.其中描写涌目前客户窗口切实网页的是Document对象。由一系列的属性、措施、对象和聚集构成.其中All聚凑近包括网页中所有符号(Tag)元素,其重要的措施和属性有:
(1)Length(长度):即符号揭示的个数,能够把符号的集有会意为从0开始的一维数组,其次序按照符号在网页位置编排;
(2)Tags(符号):用于过滤出给定符号的聚集,如Doc.Al1.Tags(P)获得所有分段符号P;
(3)Item(项目):用于抉择聚凑近的某1个元素,如object.item(0)获得聚集的第1个元素,而object.item(i)获得第i+1个元素.
另外,IHTMLElement也是个常用的聚集对象,代表网页中指定符号的聚集,穿越这个聚集对象,能够获得网页上特定符号的内容.IHTMLElement有4个重要属性:
(1)InnerText:开始符号和告终符号之间的文本;
(2)InnerHTML:开始符号和告终符号之间的文本和HTML;
(3)OuterText:对象的文本;
(4)OuterHTML:对象的文本和HTML.
注意:使用前必须加入单元mshtml
演示表单提交
procedure TForm1.Button1Click(Sender: TObject);
var
begin
end;
如果有验证码怎么办?
Delphi自动提交网页表单和获取框架网页源码
参考:http://apps.hi.baidu.com/share/detail/32863592
这两个问题的实现原理其实是差不多的,所以放在一起介绍,单元MSHtml封装了我们需要的功能。
首先,新建一个DELPHI工程,在USES部分添加MSHtml单元的引用。
然后,在窗体上放置一个TWebBrowser控件和四个按钮。
最后,编写四个按钮的响应代码:
1. 自动提交网页表单
procedure TForm1.Button1Click(Sender: TObject);
begin
end;
procedure TForm1.Button2Click(Sender: TObject);
var
begin
end;
2. 获取框架网页源码
begin
end;
procedure TForm1.Button4Click(Sender: TObject);
var
begin
end;
3. 获取网页所有链接
procedure TForm1.Button1Click(Sender: TObject);
var
begin
end;
焦点设置
参考:http://topic.csdn.net/t/20010610/23/154240.html
当TWebbrowser中的内容是一个html文件时,可用下面的方法设置焦点,
IHTMLWindow2(IHTMLDocument2(Webbrowser1.Document).ParentWindow).focus;
但当TWebbrowser中的内容是一个本地目录时,再用上述方法设置焦点就会出错。