【问题标题】:Is it possible to get post javascript reference in WebBrowser?是否可以在 WebBrowser 中获取发布 javascript 参考?
【发布时间】:2012-03-29 19:48:12
【问题描述】:

我多年来一直在尝试这样做,甚至看过:

C# WebBrowser control -- Get Document Elements After AJAX?

没有运气。

基本上,我需要与网页上使用 javascript 在运行时生成的元素进行交互。

众所周知,当您在运行时使用 javascript 生成元素时,它不会显示在“查看源代码”中,因此当我请求 WebBrowser.DocumentText 时它不会显示。

我确信有办法做到这一点,但没有任何关于此的信息。

谁能打破僵局并告诉我该怎么做?

谢谢

【问题讨论】:

  • 您是否考虑过使用其他浏览器控件,例如:awesomium.com/#about
  • 我可以,但我必须从头开始重新启动我的程序。有没有办法使用 WebBrowser 做到这一点?

标签: c# winforms browser


【解决方案1】:

如果您还在 WebBrowser 控件中控制正在查看的网页,那么您可以公开返回所需内容的 JavaScript 方法并使用 Document.InvokeScript 从 JavaScript 方法中获取值。

C#:

object value = this.WebBrowser1.Document.InvokeScript("getValue");

JavaScript:

function getValue() {
    var editor = iged_getById("<%=WebHtmlEditor1.ClientID %>");
    return editor.getText();
}

如果您无法控制网站,那么您可以通过 Document 属性与网页的文档进行交互,因为它是一个表示 HtmlDocument 的 .NET 对象: http://msdn.microsoft.com/en-us/library/system.windows.forms.htmldocument.aspx

【讨论】:

  • 我已经离开了 WebBrowser 控件,因为当需要与网页进行广泛交互时,它非常有缺陷和 hacky。我现在使用原始请求。但是,我认为您可以使用 DomDocument 而不是 Document.
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-09-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-25
  • 2016-11-18
相关资源
最近更新 更多