WebClient运行javascript

And*_*ese 8 .net javascript c# browser webclient

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

我可以通过webbrowser运行这个javascript函数,其中包含以下方法 WebBrowser1_DocumentCompleted

WebBrowser1.Document.Window.DomWindow.execscript ("somefunction();", "JavaScript")
Run Code Online (Sandbox Code Playgroud)

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

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

Cam*_*ron 21

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

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

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

您正在寻找的东西被称为"无头浏览器",它支持在DOM上加载HTML和运行JavaScript,完全符合您的需要.与普通浏览器相比,无头浏览器通常也非常快,因为它们不需要进行任何渲染.

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

也有其他的替代品WebBrowser可能,如果你想留在一个控制或可能不会快于你的情况下,控制.