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#?
Odpowiedz
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");
Świetna robota zamieść tutaj swoje rozwiązanie! Dzięki – viniciushana
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.
Czy możesz wyjaśnić swój punkt na przykładzie? – Aakash
Na końcu linku znajdziesz kilka przykładów. – viniciushana
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
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
Czy jest to tylko do odczytu (jak widzę, zawiera tylko getter)? –