2012-03-26 88 views
5

我有一個windows.Net Form它包含一個WebBrowser控制。
WebBrowser顯示基於其Url屬性的網頁。
我可以修改WebBrowser控件中顯示的頁面的DOM嗎?
如果是,如何?如何更新C#中的WebBrowser控件內的DOM內容?

+1

這是可能的。 WebBrowser應該有一個名爲Document的屬性,您可以通過託管代碼上的htmldocument訪問html(http://msdn.microsoft.com/en-us/library/system.windows.forms.webbrowser.aspx) – MilkyWayJoe 2012-03-26 14:18:24

+1

這裏是鏈接到我提到的特定屬性http://msdn.microsoft.com/en-us/library/system.windows.forms.webbrowser.document.aspx – MilkyWayJoe 2012-03-26 14:21:42

+1

它是隻讀的(因爲我看到它只包含一個getter)? – 2012-03-26 15:23:05

回答

8

對於那些有興趣誰,這裏的解決方案:

HtmlElement headElement = webBrowser1.Document.GetElementsByTagName("head")[0]; 
HtmlElement scriptElement = webBrowser1.Document.CreateElement("script"); 
IHTMLScriptElement domScriptElement = (IHTMLScriptElement)scriptElement.DomElement; 
domScriptElement.text = "function applyChanges(){/*DO WHATEVER YOU WANT HERE*/}"; 
headElement.AppendChild(scriptElement); 

// Call the nextline whenever you want to execute your code 
webBrowser1.Document.InvokeScript("applyChanges"); 
+1

偉大的工作在這裏發佈您的解決方案!謝謝 – viniciushana 2012-03-27 18:21:10

2

http://msdn.microsoft.com/pt-br/library/system.windows.forms.webbrowser.aspx

您也可以通過文檔屬性,它包含的HTMLDocument對象,它提供對當前頁面管理訪問HTML文檔對象模型(DOM)操縱網頁內容。此屬性在與ObjectForScripting屬性結合使用時非常有用,可以在Web頁面中實現應用程序代碼和動態HTML(DHTML)代碼之間的雙向通信,從而使您可以將基於Web的控件和Windows窗體控件合併爲一個用戶界面。您可以使用Document屬性從您的應用程序調用腳本代碼方法。您的腳本代碼可以通過window.external對象訪問您的應用程序,該對象是爲主機訪問提供的內置DOM對象,並映射到您爲ObjectForScripting屬性指定的對象。

+0

您能否以示例說明您的觀點? – Aakash 2013-07-23 06:25:11

+0

在鏈接的末尾,你會發現一些例子。 – viniciushana 2013-07-23 11:58:30

相關問題