2015-02-11 82 views
1

我正在WPF应用程序中工作,我想获取使用Angular JS技术的网站的呈现HTML。以下是我已经试过:WPF WebBrowser无法加载呈现的Angular JS网站的HTML

首先,我创建一个WPF Web浏览器控件:

private WebBrowser webBrowser; 

然后我把它定位到我的目标网页:

var uri = new Uri("http://my-angualrjs-site.com", UriKind.RelativeOrAbsolute); 
webBrowser.Navigate(uri); 

LoadCompleted事件我的WebBrowser实例的处理程序我将检索到的文档投到mshtml.HTMLDocument

var doc = (mshtml.HTMLDocument) webb.Document; 

我得到的只是页面的原始HTML,而不是由服务器上的Angular JS处理和呈现的HTML。我错过了什么吗?

+1

您是否尝试过在等待30秒,然后抓住了HTML? – JMK 2015-02-11 08:39:12

+0

您是否暗示'LoadCompleted'在实际加载完成之前触发? – Pejman 2015-02-11 08:41:00

+0

好吧,一旦HTML等发生故障就会触发,但此时AngularJS只会开始做这件事。根据什么API调用等Angular是做客户端,它可能需要几秒钟才能得到您的最终结果。这适用于任何客户端Javascript框架。 – JMK 2015-02-11 08:41:46

回答

1

我有一个类似的问题,无法得到一个角页面在控件中正确渲染。 在遵循Noseratios的答案后,它呈现并且运行良好。 也许这会帮助你太: C# webbrowser Ajax call

总之,你需要的功能添加到控制,使行为更接近IE。

随着他的解决方案,您就可以使用如下代码:

SetBrowserFeatureControlKey("FEATURE_AJAX_CONNECTIONEVENTS", fileName, 1);