Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Las DocumentStream propiedades y DocumentText del WebBrowser control devuelven el CÓDIGO HTML del documento actual tal como existía cuando se mostraba por primera vez. Sin embargo, si modifica la página mediante llamadas a métodos y propiedades como AppendChild y InnerHtml, estos cambios no aparecerán cuando llame a DocumentStream y DocumentText. Para obtener el origen HTML más up-to-date del DOM, debe llamar a la OuterHtml propiedad en el elemento HTML.
En el procedimiento siguiente se muestra cómo recuperar el origen dinámico y mostrarlo en un menú contextual independiente.
Recuperación del origen dinámico con la propiedad OuterHtml
Cree una nueva aplicación Windows Forms. Comience con un único Formy llámelo
Form1
.Hospede el control WebBrowser en su aplicación de Windows Forms y asígnele el nombre
WebBrowser1
. Para obtener más información, vea Cómo: Agregar capacidades de navegador web a una aplicación de Windows Forms.Cree un segundo Form en su aplicación llamado
CodeForm
.Agregue un RichTextBox control a
CodeForm
y establezca su Dock propiedad enFill
.Cree una propiedad pública en
CodeForm
denominadaCode
.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
Agregue un Button control denominado
Button1
a Formy supervise el Click evento. Para más información sobre los eventos de supervisión, consulte Eventos.Agregue el código siguiente al controlador de Click eventos.
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
Programación sólida
Compruebe siempre el valor de Document antes de intentar recuperarlo. Si la página actual no ha terminado de cargarse, Document o es posible que no se inicialice uno o varios de sus objetos secundarios.
Consulte también
.NET Desktop feedback