【问题标题】:How to update DOM content inside WebBrowser Control in C#?如何在 C# 中更新 WebBrowser 控件中的 DOM 内容?
【发布时间】:2012-04-10 01:08:35
【问题描述】:

我有一个 Windows .Net Form,其中包含一个 WebBrowser 控件。
WebBrowser 显示基于其Url 属性的网页。
我可以修改WebBrowser控件内显示页面的DOM吗?
如果是,怎么做?

【问题讨论】:

标签: c# winforms dom webbrowser-control


【解决方案1】:

对于那些感兴趣的人,这里是解决方案:

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");

【讨论】:

  • 在这里发布您的解决方案做得很好!谢谢
【解决方案2】:

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

您还可以通过 Document 属性操作网页的内容,该属性包含一个 HtmlDocument 对象,该对象提供对当前页面的 HTML 文档对象模型 (DOM) 的托管访问。当与 ObjectForScripting 属性结合使用时,此属性非常有用,可在 Web 页面中实现应用程序代码和动态 HTML (DHTML) 代码之间的双向通信,让您将基于 Web 的控件和 Windows 窗体控件组合在一个单一的用户界面。您可以使用 Document 属性从应用程序中调用脚本代码方法。您的脚本代码可以通过 window.external 对象访问您的应用程序,该对象是为主机访问提供的内置 DOM 对象,它映射到您为 ObjectForScripting 属性指定的对象。

【讨论】:

  • 在链接末尾,您会找到一些示例。
猜你喜欢
  • 2012-09-27
  • 1970-01-01
  • 1970-01-01
  • 2012-07-11
  • 2011-01-28
  • 2010-10-11
  • 2016-06-17
  • 2016-11-25
相关资源
最近更新 更多