WebView SaveToString() 等价物
WebView SaveToString() Equivalent
我一直在使用 SaveToString() 方法来获取 WebBrowser 控件中页面的源代码。但由于它在 Windows 10 中已被弃用,Windows 10.
的 WebView 控件中 SaveToString() 的等价物是什么
WebView 允许我们调用脚本,我们可以转储 document.documentElement.outerHTML 来做与 SaveToString() 相同的事情。
下面显示了一个非常简单的测试示例。请注意,我并没有试图做出很酷的 UI 设计并使所有内容都格式化,而只是试图向您展示这个想法。
在xaml中:
<StackPanel>
<WebView x:Name="MyWebView" Source="http://www.bing.com" Height="200"
DOMContentLoaded="MyWebView_DOMContentLoaded"/>
<Button x:Name="ViewSourceBtn" Content="View Source" Click="ViewSourceBtn_Click"/>
<RichTextBlock x:Name="SourceBlock" Height="300" >
</RichTextBlock>
</StackPanel>
后面的代码:
bool contentloaded = false;
private async void ViewSourceBtn_Click(object sender, RoutedEventArgs e)
{
if (contentloaded)
{
string html = await MyWebView.InvokeScriptAsync("eval", new string[] { "document.documentElement.outerHTML;" });
var paragraph = new Paragraph();
paragraph.Inlines.Add(new Run { Text = html });
SourceBlock.Blocks.Clear();
SourceBlock.Blocks.Add(paragraph);
}
else
{
string err = "Waiting for HTML content to load!";
var paragraph = new Paragraph();
paragraph.Inlines.Add(new Run { Text = err });
SourceBlock.Blocks.Clear();
SourceBlock.Blocks.Add(paragraph);
}
}
private void MyWebView_DOMContentLoaded(WebView sender, WebViewDOMContentLoadedEventArgs args)
{
contentloaded = true;
}
这是点击查看源代码按钮的结果:
我一直在使用 SaveToString() 方法来获取 WebBrowser 控件中页面的源代码。但由于它在 Windows 10 中已被弃用,Windows 10.
的 WebView 控件中 SaveToString() 的等价物是什么WebView 允许我们调用脚本,我们可以转储 document.documentElement.outerHTML 来做与 SaveToString() 相同的事情。
下面显示了一个非常简单的测试示例。请注意,我并没有试图做出很酷的 UI 设计并使所有内容都格式化,而只是试图向您展示这个想法。
在xaml中:
<StackPanel>
<WebView x:Name="MyWebView" Source="http://www.bing.com" Height="200"
DOMContentLoaded="MyWebView_DOMContentLoaded"/>
<Button x:Name="ViewSourceBtn" Content="View Source" Click="ViewSourceBtn_Click"/>
<RichTextBlock x:Name="SourceBlock" Height="300" >
</RichTextBlock>
</StackPanel>
后面的代码:
bool contentloaded = false;
private async void ViewSourceBtn_Click(object sender, RoutedEventArgs e)
{
if (contentloaded)
{
string html = await MyWebView.InvokeScriptAsync("eval", new string[] { "document.documentElement.outerHTML;" });
var paragraph = new Paragraph();
paragraph.Inlines.Add(new Run { Text = html });
SourceBlock.Blocks.Clear();
SourceBlock.Blocks.Add(paragraph);
}
else
{
string err = "Waiting for HTML content to load!";
var paragraph = new Paragraph();
paragraph.Inlines.Add(new Run { Text = err });
SourceBlock.Blocks.Clear();
SourceBlock.Blocks.Add(paragraph);
}
}
private void MyWebView_DOMContentLoaded(WebView sender, WebViewDOMContentLoadedEventArgs args)
{
contentloaded = true;
}
这是点击查看源代码按钮的结果: