2012-03-26 4 views
5

I have a windows .Net Form che contiene un controllo WebBrowser.
Questo WebBrowser visualizza una pagina Web basata sulla sua proprietà Url.
Posso modificare il DOM della pagina visualizzata all'interno del controllo WebBrowser?
Se sì, come?Come aggiornare il contenuto DOM all'interno del controllo WebBrowser in C#?

+1

E 'possibile. Si suppone che WebBrowser disponga di una proprietà denominata Documento che consente di accedere a html tramite htmldocument sul codice gestito (http://msdn.microsoft.com/en-us/library/system.windows.forms.webbrowser.aspx) – MilkyWayJoe

+1

Ecco la descrizione link a quella specifica proprietà che ho citato http://msdn.microsoft.com/en-us/library/system.windows.forms.webbrowser.document.aspx – MilkyWayJoe

+1

È di sola lettura (come vedo solo contiene un getter)? –

risposta

8

Per coloro che sono interessati, ecco la soluzione:

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

Ottimo lavoro pubblica la tua soluzione qui! Grazie – viniciushana

2

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

È inoltre possibile modificare il contenuto di una pagina Web tramite la proprietà documento, che contiene un oggetto HtmlDocument che fornisce l'accesso riuscito al modello a oggetti documento HTML (DOM) per la pagina corrente . Questa proprietà è utile, se utilizzata in combinazione con la proprietà ObjectForScripting, per implementare la comunicazione bidirezionale tra il codice dell'applicazione e il codice HTML dinamico (DHTML) in una pagina Web, consentendo di combinare controlli basati su Web e controlli Windows Form in un unico interfaccia utente. È possibile utilizzare la proprietà Document per chiamare i metodi del codice di scripting dall'applicazione. Il codice di scripting può accedere all'applicazione tramite l'oggetto window.external, che è un oggetto DOM incorporato fornito per l'accesso host e che esegue il mapping all'oggetto specificato per la proprietà ObjectForScripting.

+0

Potresti chiarire il tuo punto con un esempio? – Aakash

+0

Alla fine del link, troverai alcuni esempi. – viniciushana