2017-07-22 5 views
0

私は、WebBrowserコントロールを持っているのWEBブラウザの完全なソースを取得します

textBox1.Text = webBrowser1.DocumentText; 

をしかし、それは唯一の結果:

<HTML></HTML> 

これは、textBox1.textを設定する前にMessageBoxに表示すると機能します:

MessageBox.Show(webBrowser1.DocumentText); 

奇妙です。どのようにして完全なソースを入手できますか?

WebBrowser1.Document.GetElementsByTagName("HTML").Item[0].OuterHtml; 

がそれてください:ここで

+1

[C#に埋め込まれたブラウザコントロールからHTMLソースコードを取得](https://stackoverflow.com/questions/5267184/get-html-source-code-from-browser-control-embedded-in-c)シャープ) – opewix

答えて

0

はどんな完全なソースを取得しないためにどのように、直接あなたの最初の質問に答えるためにWebBrowser制御

var html = @"<html lang='en'> 
    <head> 
    <meta charset='utf-8'> 
    <title></title> 
    <style type='text/css'> 
     .red 
     { 
      color: red; 
     } 
    </style> 
    </head> 
    <body> 
     <div class='red'>red text</div> 
     sad adad a das 
    </body></html>"; 

webBrowser1.DocumentText = "0"; 
webBrowser1.Document.OpenNew(true); 
webBrowser1.Document.Write(html); 
webBrowser1.Refresh(); 

// Will return html you provided 
textBox1.Text = webBrowser1.DocumentText; 
+0

ありがとう!少し説明できますか?なぜ 'webBrowser.DocumentText'が足りないのですか? – kovak

+0

@kovak私は 'webBrowser.DocumentText'に設定しようとしているHTMLは' WebBrowser'によって正しく解析されていないと思います。私はデバッグモードでそれをチェックし、内部で多くの例外が見つかった。 – opewix

0

に文字列からHTMLを表示するための適切な方法でありますタグのInnerHTMLを変更するなどしてDocumentTextを変更した場合、DocumentTextに保存されないため、DocumentTextではなくDocumentTextを使用するのが習慣です。

私は、TextBoxを自分のWinFormsに貼り付け、上記のコードにテキストを更新して、すべてのHTMLを問題なく表示します。ここでは、あなたのコード内でタイプミスか何かを持っている場合には、私のWebブラウザーで埋める私の例を示します。

WebBrowser1.Navigate("about:blank"); 
WebBrowser1.Document.OpenNew(false); 
WebBrowser1.Document.Write("<html><head><title></title></head><body></body></html>"); 

私が直接DocumentTextを書いて任意の運を持っていませんでした。このメソッドは問題なく動作しました。

関連する問題