WebClient 运行 JavaScript

9
我有一个.aspx页面,其中包含一些控制分页的JavaScript函数。
我可以通过WebBrowser1_DocumentCompleted方法在web浏览器中运行此JavaScript函数。
WebBrowser1.Document.Window.DomWindow.execscript ("somefunction();", "JavaScript")

网页浏览器速度很慢,我更喜欢使用 System.Net.WebClient.DownloadString

有没有一些更快的方法或其他方式可以使用 System.Net.WebClient 方法来运行此脚本?

1个回答

25

好的,不是的。WebClient是一个HTTP客户端,而不是一个网页浏览器。

HTTP客户端遵循HTTP规范;您的HTTP请求结果为HTML与客户端无关。

另一方面,网页浏览器除了是HTTP客户端外,还知道如何解析HTML响应(以及执行JavaScript等)。

看起来你需要的是称为"无头浏览器",它支持在DOM上加载HTML并运行JavaScript,正如你所需的那样。无头浏览器通常比普通浏览器快得多,因为它们不需要进行任何渲染。

有几个无头浏览器。HtmlUnit(可以转换为运行在.NET上),看起来是一个不错的选择,envjs(它是用JavaScript编写的,可以嵌入到.NET中)。不幸的是,我没有任何经验,但它们都看起来非常酷,特别是envjs。更新:一个很好的、更加实时的无头浏览器列表已经发布在GitHub上

如果你想继续使用控件,也有其他替代方案WebBrowser可供选择,可能在你的情况下速度更快。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接