WebClient运行javascript

我有一个。 aspx页面,它有一些控制分页的JavaScript函数。

我可以通过webbrowser在WebBrowser1_DocumentCompleted使用以下方法运行此javascript函数

 WebBrowser1.Document.Window.DomWindow.execscript ("somefunction();", "JavaScript") 

webbrowser非常慢,我更喜欢使用System.Net.WebClient.DownloadString

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

好吧,不。 WebClientHTTP客户端,而不是Web浏览器。

HTTP客户端遵循HTTP规范; 您的HTTP请求导致HTML的事实与客户端无关。

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

看起来你所寻找的东西被称为“无头浏览器”,它支持在DOM上加载HTML和运行JavaScript,就像你需要的那样。 与普通浏览器相比,无头浏览器通常也非常快,因为它们不需要进行任何渲染。

有几个无头浏览器。 HtmlUnit (可以转换为在.NET上运行)似乎是一个不错的选择,就像envjs一样 (它是用JavaScript编写的, 可以嵌入.NET中 )。 不幸的是,我对这两者都没有经验,但它们看起来都非常酷,特别是envjs。 更新: GitHub上发布了一个不错的,更新的无头浏览器列表。

WebBrowser控件还有其他替代方法 ,如果您想要使用控件,可能会或者可能不会更快。