共用方式為


HOW TO:存取 Managed HTML 文件物件模型中的 HTML 原始檔

WebBrowser 控制項上的 DocumentStreamDocumentText 屬性可傳回目前文件第一次顯示時所存在的 HTML。 但是,如果使用方法和屬性呼叫 (例如 AppendChildInnerHtml) 來修改頁面,那麼呼叫 DocumentStreamDocumentText 時就不會顯示這些變更。 若要取得 DOM 最新的 HTML 原始檔,必須呼叫 HTML 項目上的 OuterHtml 屬性。

下列程序顯示如何擷取動態來源並且在獨立的捷徑功能表中顯示。

以 OuterHtml 屬性擷取動態來源

  1. 建立新的 Windows Form 應用程式。 從單一的 Form 開始,並且將它稱為 Form1。

  2. 在 Windows Form 應用程式中裝載 WebBrowser 控制項,並且將它命名為 WebBrowser1。 如需詳細資訊,請參閱 HOW TO:將 Web 瀏覽器功能加入至 Windows Form 應用程式

  3. 在應用程式中建立第二個 Form,並且命名為 CodeForm。

  4. RichTextBox 控制項加入至 CodeForm,並將該控制項的 Dock 屬性設為 Fill。

  5. 在 CodeForm 上建立稱為 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. 將名為 Button1 的 Button 控制項加入至 Form,並且監視 Click 事件。 如需監視事件的詳細資訊,請參閱使用事件

  7. 將下列程式碼加入至 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();
                    }
                }
            }
    

穩固程式設計

在嘗試擷取 Document 值之前,一律先測試此值。 如果目前頁面尚未完成載入,Document 或它的一或多個子物件可能無法初始化。

請參閱

參考

WebBrowser 控制項概觀

其他資源

使用 Managed HTML 文件物件模型