Procedura: accedere all'origine HTML nel Document Object Model HTML gestito

Aggiornamento: novembre 2007

Le proprietà DocumentStream e DocumentText del controllo WebBrowser restituiscono l'HTML del documento corrente così come si presentava al momento della prima visualizzazione. Se tuttavia si modifica la pagina attraverso chiamate a metodo e proprietà, ad esempio AppendChild eInnerHtml, le modifiche non verranno visualizzate quando si esegue la chiamata alle proprietà DocumentStream e DocumentText. Per ottenere l'origine HTML più recente del DOM, è necessario chiamare la proprietà OuterHtml sull'elemento HTML.

Nella procedura seguente viene illustrato come recuperare l'origine dinamica e visualizzarla in un menu di scelta rapida separato.

Recupero dell'origine dinamica con la proprietà OuterHtml

  1. Creare una nuova applicazione Windows Form. Iniziare con una sola classe Form denominandola Form1.

  2. Includere il controllo WebBrowser nell'applicazione Windows Form e denominarlo WebBrowser1. Per ulteriori informazioni, vedere Procedura: aggiungere funzionalità del browser Web a un'applicazione Windows Form.

  3. Creare una seconda istanza della classe Form nell'applicazione denominandola CodeForm.

  4. Aggiungere un controllo RichTextBox a CodeForm e impostarne la proprietà Dock su Fill.

  5. Creare una proprietà pubblica in CodeForm denominata Code.

    Public Property Code() As String
        Get
            If (RichTextBox1.Text IsNot Nothing) Then
                Code = RichTextBox1.Text
            Else
                Code = ""
            End If
        End Get
    
        Set(ByVal value As String)
            RichTextBox1.Text = value
        End Set
    End Property
    
         public string Code
            {
                get
                {
                    if (richTextBox1.Text != null)
                    {
                        return (richTextBox1.Text);
                    }
                    else
                    {
                        return ("");
                    }
                }
                set
                {
                    richTextBox1.Text = value;
                }
            }
    
  6. Aggiungere un controllo Button denominato Button1 alla classe Form e monitorare l'evento Click. Per informazioni dettagliate sul monitoraggio degli eventi vedere Utilizzo degli eventi.

  7. Aggiungere il codice seguente al gestore eventi Click.

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim elem As HtmlElement
    
        If (WebBrowser1.Document IsNot Nothing) Then
            Dim cf As New CodeForm()
            Dim elems As HtmlElementCollection = WebBrowser1.Document.GetElementsByTagName("HTML")
            If (elems.Count = 1) Then
                elem = elems(0)
                cf.Code = elem.OuterHtml
                cf.Show()
            End If
        End If
    End Sub
    
         private void button1_Click(object sender, EventArgs e)
            {
                HtmlElement elem;
    
                if (webBrowser1.Document != null)
                {
                    CodeForm cf = new CodeForm();
                    HtmlElementCollection elems = webBrowser1.Document.GetElementsByTagName("HTML");
                    if (elems.Count == 1)
                    {
                        elem = elems[0];
                        cf.Code = elem.OuterHtml;
                        cf.Show();
                    }
                }
            }
    

Programmazione efficiente

Verificare sempre il valore della proprietà Document prima di tentare di recuperarla. Se il caricamento della pagina corrente non è terminato, è possibile che l'inizializzazione di Document oppure di uno o più dei relativi oggetti figlio non venga eseguita.

Vedere anche

Riferimenti

Cenni preliminari sul controllo WebBrowser

Altre risorse

Utilizzare il Document Object Model HTML gestito