Procedura: accedere all'origine HTML nel Document Object Model HTML gestito
Le proprietà DocumentStream r DocumentText del controllo WebBrowser restituiscono l'HTML del documento corrente come si presentava al momento della visualizzazione iniziale. Se tuttavia si modifica la pagina con chiamate a metodo e proprietà, ad esempio AppendChild e InnerHtml, queste modifiche non saranno visualizzate quando si chiama DocumentStream e DocumentText. Per ottenere l'origine HTML più recente del DOM, è necessario chiamare la proprietà OuterHtml sull'elemento HTML.
La procedura seguente mostra come recuperare l'origine dinamica e visualizzarla in un menu di scelta rapida separato.
Recupero dell'origine dinamica con la proprietà OuterHtml
Creare una nuova applicazione Windows Form. Iniziare con un singolo Formoggetto e chiamarlo
Form1
.Ospitare il controllo nell'applicazione WebBrowser Windows Form e denominarlo
WebBrowser1
. Per altre informazioni, vedere Procedura: Aggiungere funzionalità del Web browser a un'applicazione Windows Form.Creare un secondo Form nell'applicazione denominata
CodeForm
.Aggiungere un RichTextBox controllo a
CodeForm
e impostarne la Dock proprietà suFill
.Creare una proprietà pubblica in
CodeForm
denominataCode
.public string Code { get { if (richTextBox1.Text != null) { return (richTextBox1.Text); } else { return (""); } } set { richTextBox1.Text = value; } }
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
Aggiungere un Button controllo denominato
Button1
all'oggetto Forme monitorare l'evento Click . Per informazioni dettagliate sul monitoraggio degli eventi, vedere Eventi.Aggiungere il codice seguente al gestore eventi Click.
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(); } } }
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
Programmazione efficiente
Verificare sempre il valore di Document prima di tentarne il recupero. Se il caricamento della pagina corrente non viene completato, è possibile che l'inizializzazione di Document o di uno o più dei relativi oggetti figlio non sia eseguita.
Vedi anche
.NET Desktop feedback