[英]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.