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#?
risposta
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");
Ottimo lavoro pubblica la tua soluzione qui! Grazie – viniciushana
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.
Potresti chiarire il tuo punto con un esempio? – Aakash
Alla fine del link, troverai alcuni esempi. – viniciushana
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
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
È di sola lettura (come vedo solo contiene un getter)? –