从WebBrowser访问DOM

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从WebBrowser访问DOM相关的知识,希望对你有一定的参考价值。

我正在尝试实现类似浏览器的小应用程序,这将允许我修改查看的网站外观(例如,使链接的字体更大)。它专为Microsoft Surface设计,可用于巨大的触摸屏。它使用WPF作为UI。

我打算使用WebBrowser控件来完成此任务。但是,文档中有两个名为WebBrowser的类。其中一个在System.Windows.Forms,另一个在System.Windows.Controls。第一个提供对DOM模型的访问,但是适用于Forms应用程序(如果我理解正确,那绝对不是我拥有的)。如果在xaml中添加控制器,则默认添加第二个,但它不提供对DOM的访问。

那么,如何从Surface的Web浏览器访问DOM模型?我是c#和Microsoft技术的新手,所以如果我的问题不清楚或明显,我会道歉。

答案

对于System.Windows.Controls.WebBrowser类,您可以使用Document属性。通过右键单击项目并选择Add Reference,将mshtml引用添加到您的项目中,然后您应该能够将其转换为mshtml.IHTMLDocument2

mshtml.IHTMLDocument2 htmlDoc = webBrowser.Document as mshtml.IHTMLDocument2;
// do something like find button and click
htmlDoc.all.item("testBtn").click(); 

以上是关于从WebBrowser访问DOM的主要内容,如果未能解决你的问题,请参考以下文章

使用 WebBrowser 访问 DOM

透过DOM操作WebBrowser内的控件

以 HTML 格式获取当前的 WebBrowser DOM

如何在 C# 中更新 WebBrowser 控件中的 DOM 内容?

非 IE WebBrowser ActiveX 控件

如何在 WebBrowser 控件中注入 CSS?