簡體   English   中英

如何從Web瀏覽器控件以編程方式刪除HTML元素?

[英]How to remove an HTML element programatically from web browser control?

我使用Web瀏覽器控件,文檔加載了HTML頁面。 我想以編程方式從文檔中刪除元素。

任何人都可以指導我如何通過ID或名稱屬性刪除任何元素?

webbrowser.Document.GetElementById("element").OuterHtml = "";

您可以使用Microsoft.mshtml庫完成此操作。 我使用dynamic數據類型的強大功能完成了它:

private void Form1_Load(object sender, EventArgs e)
{
    webBrowser1.Navigate("https://www.google.com/");
}

private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
    if (e.Url.ToString() == "https://www.google.com/")
    {
        dynamic htmldoc = webBrowser1.Document.DomDocument as dynamic;
        dynamic node = htmldoc.getElementById("lga") as dynamic;
        node.parentNode.removeChild(node);
    }
}

它是VB.Net版本。 我嘗試刪除MsHTML 但引用該庫有其自身的問題。 以下不是直接答案,但可以解決方法停止使用iframes加載外部資源。

 For Each FrameElement As HtmlElement In WebBrowser1.Document.GetElementsByTagName("iframe")
 Debug.Print(FrameElement.OuterHtml)
 FrameElement.OuterHtml = Nothing
 Next

OuterHtml無法修改!

此代碼從WebPage中刪除Css鏈接:

  Sub RemoveStylesheet() Dim styles As HTMLStyleSheetsCollection = WB.Document.DomDocument.styleSheets 1: If styles.length > 0 Then For Each stl As Object In WB.Document.DomDocument.styleSheets ' stl.removeImport(0) If stl Is Nothing Then Continue For Dim st As IHTMLElement = stl.owningElement ' st.href = "" ' MsgBox(st.tagName) st.parentElement.removeChild(st) Next GoTo 1 End If End Sub 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM