2015-10-04 35 views

回答

0

的WebView的WebView控件的等效SaveToString()允許我們調用腳本,我們可以轉儲document.documentElement.outerHTML做同樣的作爲SaveToString()。

下面顯示了一個非常簡單的測試示例。請注意,我沒有嘗試製作一個很酷的用戶界面設計,並將所有東西都格式化,但只是試圖向您展示這個想法。

在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; 
    } 

下面是結果通過單擊視圖源按鈕: enter image description here

+0

感謝您的幫助! – Razor