我正在尝试从webview控件获取DOM模型,或者只是通过XML工具来处理它。该控件不提供任何返回我需要的属性。我使用JS找到了一个解决方案:
string html = Browser1.InvokeScript("eval", new string[] { "document.documentElement.outerHTML;" });
但是我得到了一个未实现的例外。
我做错了什么?我是WP编程的新手。
答案 0 :(得分:9)
与Romasz一样,使用InvokeScriptAsync - 但要确保首先加载页面。
示例应用程序:
<Grid>
<StackPanel>
<WebView x:Name="myWebView" Height="300" VerticalAlignment="Top" />
<Button Content="Read HTML" Click="Button_Click" />
<TextBlock x:Name="myTextBlock"></TextBlock>
</StackPanel>
</Grid>
private void Page_Loaded(object sender, RoutedEventArgs e)
{
this.myWebView.Navigate(new Uri("http://www.google.com", UriKind.Absolute));
}
private async void Button_Click(object sender, RoutedEventArgs e)
{
try
{
string html = await myWebView.InvokeScriptAsync("eval", new string[] { "document.documentElement.outerHTML;" });
myTextBlock.Text = html;
}
catch (Exception ex)
{
}
}