【发布时间】:2012-01-25 16:51:31
【问题描述】:
当用户在 WebView 中导航时,XAML WebView 控件的 Source 属性似乎没有更新。是否可以获得当前 Uri 或当前在 WebView 中呈现的 HTML?我的需要是解析正在显示的 HTML,这样任何一个都可以工作。
【问题讨论】:
标签: xaml webview windows-8 microsoft-metro
当用户在 WebView 中导航时,XAML WebView 控件的 Source 属性似乎没有更新。是否可以获得当前 Uri 或当前在 WebView 中呈现的 HTML?我的需要是解析正在显示的 HTML,这样任何一个都可以工作。
【问题讨论】:
标签: xaml webview windows-8 microsoft-metro
您要查找的属性名为Source。
http://msdn.microsoft.com/en-us/library/windows/apps/windows.ui.xaml.controls.webview.source.aspx
不幸的是,WinForms WebBrowser 的 Document 属性似乎不再存在。
您必须重新下载页面并使用 HtmlAgilityPack 和 Fizzler/FizzlerEx 等库进行处理。
【讨论】:
WinForms 是为了指出新旧WebBrowser 之间的区别(WinForms 与 XAML)。 Source 属性仍然是一个可行的选择。
事实证明,WebView 没有提供直接检索其 HTML 的方法。但是你可以像这样使用 WebView.InvokeScript:
webview.InvokeScript("eval", new string[] {"document.documentElement.outerHTML;"})
您也可以通过 LoadCompleted 事件的 NavigationEventArgs.Uri 获取 Uri。
【讨论】:
您是否查看了 WebView 的 LoadCompleted 事件?这给出了刚刚加载的 URI。
【讨论】: