0

我想做这个

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,但这似乎是一个简单问题的笨拙解决方案。

我一定遗漏了一些东西 - 请帮忙。

4

1 回答 1

1

视窗 8:

您可以通过以下方式获取 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 ....
}

Windows 10 更新:

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);
}
于 2013-10-15T02:04:57.160 回答