将页面加载到 Web 浏览器控件,同时按 ID 跳过 HTML 元素

本文关键字:ID 跳过 元素 HTML 控件 加载 浏览器 Web | 更新日期: 2023-09-27 18:33:57

我正在尝试通过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' 的定义,也没有扩展方法 'getElementById' 接受 'mshtml' 类型的第一个参数。可以找到 HTMLDocumentClass'(您是否缺少 using 指令或程序集引用?

和:

互操作类型 'mshtml.HTMLDocumentClass'不能嵌入。请改用适用的接口。

将页面加载到 Web 浏览器控件,同时按 ID 跳过 HTML 元素

您可以使用以下方法执行此操作:

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