如何得到网页中所有元素或指定控件类型(如IHTMLSelectElement或IHTMLSelectElement)的名称?

aldz 2004-08-12 03:52:38
我想像中是要通过htmldocment方法遍历网页中的所有控件,但又怕元素太多,会影响速度,能不能分类遍历,如先遍历IHTMLSelectElement中的所有名称,再遍历其它元素类型的名称。
...全文
327 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhengcg 2004-08-14
  • 打赏
  • 举报
回复
你用 WebBrowser 为关键字,可以有很多类似的帖子的。如果对接口没有了解,最好先了解一下。

var
DocIntf: IHTMLDocument2;
begin
WebBrowser1.Navigate('about:blank');
while WebBrowser1.ReadyState <> READYSTATE_COMPLETE do
Application.ProcessMessages;
DocIntf := IHTMLDocument2(WebBrowser1.Document);
//用这 DocIntf 就可以访问你要的 Element,如果还是不懂,建议你先看一些其他一些基础的帖子。
// DocIntf.all 指所有的 Elements
// DocIntf.links 指所有的 Link Elements
// DocIntf.all.tags('TABLE') 指所有的 Table Elements
// DocIntf.all.item(0,0) as IHTMLElement 指第一个Element
end;
aldz 2004-08-12
  • 打赏
  • 举报
回复
老兄,您都挺辛苦的,费了这么多口水来帮我,但我还是不清楚,能不能用代码示范一下?
zhengcg 2004-08-12
  • 打赏
  • 举报
回复
首先用 TWebBrowser 浏览一个页面,包括空页(about:blank)也可以。得到 TWebBrowser.Document 的接口,这是个 IHTMLDocument2,具体参考 MSHTML.pas
这个接口就有这些属性的
aldz 2004-08-12
  • 打赏
  • 举报
回复
什么意思?请给出具体调用方法好吗?
zhengcg 2004-08-12
  • 打赏
  • 举报
回复
IHTMLDocument2 已经对元素做了分类了,如 Form、Image、Link 等,也可以用 Tag 进行分类的。
不过实际一个网页的元素也不会太多的,如新浪主页、163主页都就三、四千个。如果用树的方式遍历可能就会花点事件,我一个网页所有元素都遍历两遍,并显示在 TreeView 中,因为显示问题,就要两三秒钟了。
蒋晟 2004-08-12
  • 打赏
  • 举报
回复
search element by id,name or tagname

1,593

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 网络通信/分布式开发
社区管理员
  • 网络通信/分布式开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧