2012-03-26 18 views
5

Mam Windows .Net Form, który zawiera kontrolkę WebBrowser.
Ta strona wyświetla się na stronie internetowej w oparciu o jego właściwość .
Czy mogę zmodyfikować DOM wyświetlanej strony wewnątrz kontrolki WebBrowser?
Jeśli tak, jak?Jak zaktualizować zawartość DOM w kontrolce WebBrowser w języku C#?

+1

To jest możliwe. WebBrowser powinien mieć właściwość o nazwie Document, która umożliwia dostęp do html za pomocą htmldocument na zarządzanym kodzie (http://msdn.microsoft.com/en-us/library/system.windows.forms.webbrowser.aspx) – MilkyWayJoe

+1

Oto link do tej konkretnej właściwości, o której wspomniałem http://msdn.microsoft.com/en-us/library/system.windows.forms.webbrowser.document.aspx – MilkyWayJoe

+1

Czy jest to tylko do odczytu (jak widzę, zawiera tylko getter)? –

Odpowiedz

8

Dla tych, którzy są zainteresowani, oto rozwiązanie:

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

Świetna robota zamieść tutaj swoje rozwiązanie! Dzięki – viniciushana

2

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

Można również manipulować zawartość strony internetowej za pośrednictwem właściwości dokumentu, który zawiera obiekt HTMLDocument który zapewnia zarządzany dostęp do obiektowego modelu dokumentu HTML (DOM) dla bieżącej strony . Właściwość ta jest przydatna, gdy jest używana w połączeniu z właściwością ObjectForScripting, do implementacji dwukierunkowej komunikacji między kodem aplikacji a dynamicznym kodem HTML (DHTML) na stronie sieci Web, umożliwiając łączenie elementów sterujących opartych na sieci Web i formantów formularzy systemu Windows w jednym miejscu. interfejs użytkownika. Możesz użyć właściwości Dokument, aby wywoływać metody kodowania skryptów z aplikacji. Twój kod skryptowy może uzyskać dostęp do aplikacji za pośrednictwem obiektu window.external, który jest wbudowanym obiektem DOM przeznaczonym do dostępu hosta i który jest odwzorowywany na obiekt określony dla właściwości ObjectForScripting.

+0

Czy możesz wyjaśnić swój punkt na przykładzie? – Aakash

+0

Na końcu linku znajdziesz kilka przykładów. – viniciushana

Powiązane problemy