我想这样做
Uri targetUri = new Uri(Address.Text);
WebView1.Navigate(targetUri);
string content = WebView1.GetDocument(); //How can I get the document loaded from the target Uri?
我已经查看了MSDN中的API,但我没有看到任何值得注意的内容。
我想我可以挂钩FrameNavigationStarting
,捕获Uri并通过WebClient
发起一个单独的请求,但这似乎是解决一个简单问题的简单方法。
我一定错过了什么 - 请帮助。
答案 0 :(得分:1)
您可以通过以下方式获取WebView页面内容:
private void webView_LoadCompleted_1(object sender, NavigationEventArgs e)
{
WebView webView = sender as WebView;
string html = webView.InvokeScript(
"eval",
new string[] {"document.documentElement.outerHTML;"});
// Here you can parse html ....
}
InvokeScript()
在Windows 10中抛出以下异常:
App1.exe中出现“System.NotImplementedException”类型的异常,但未在用户代码中处理
附加信息:未实施方法或操作。
改为使用InvokeScriptAsync()
。
XAML:
<WebView Source="http://kiewic.com" LoadCompleted="WebView_LoadCompleted"></WebView>
C#:
private async void WebView_LoadCompleted(object sender, NavigationEventArgs e)
{
WebView webView = sender as WebView;
string html = await webView.InvokeScriptAsync(
"eval",
new string[] { "document.documentElement.outerHTML;" });
// TODO: Do something with the html ...
System.Diagnostics.Debug.WriteLine(html);
}