【问题标题】:Loading page to WebBrowser control while skipping HTML elements by ID?在按 ID 跳过 HTML 元素时将页面加载到 WebBrowser 控件?
【发布时间】:2012-05-21 05:12:25
【问题描述】:

我正在尝试通过 WebBrowser 控件加载某个页面,同时避免在名为“tb”的 DIV 元素中加载不必要的广告横幅。

我该怎么做?我做了一些谷歌搜索并找到了一个使用 mshtml 参考的示例,但我无法从这个示例中使其工作:https://stackoverflow.com/a/1218875

有什么想法吗?

为什么这不起作用?

using System;
using mshtml;
using System.Windows.Forms;

namespace Client
{
    public partial class Client : Form
    {
        public Client()
        {
            InitializeComponent();

            HTMLDocumentClass htmldoc = wbBrowser.Document.DomDocument as HTMLDocumentClass;
            IHTMLDOMNode node = htmldoc.getElementById("tb") as IHTMLDOMNode;
            node.parentNode.removeChild(node);
        }
    }
}

我收到一个错误:

“mshtml.HTMLDocumentClass”不包含“getElementById”的定义,并且找不到接受“mshtml.HTMLDocumentClass”类型的第一个参数的扩展方法“getElementById”(您是否缺少 using 指令或程序集引用? )

还有:

无法嵌入互操作类型“mshtml.HTMLDocumentClass”。请改用适用的接口。

【问题讨论】:

    标签: c# html winforms browser


    【解决方案1】:

    您可以这样做:

    IHTMLDocument3 htmldoc = wbCtrl.Document.DomDocument as IHTMLDocument3;
    IHTMLDOMNode node = htmldoc.getElementById("xBar") as IHTMLDOMNode;
    node.parentNode.removeChild(node);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-05-22
      • 2016-01-01
      • 1970-01-01
      • 2011-10-20
      • 1970-01-01
      • 2017-07-09
      • 2011-08-04
      相关资源
      最近更新 更多