다음을 통해 공유


방법: 관리형 HTML 문서 개체 모델에서 HTML 원본 액세스

DocumentStream 컨트롤의 DocumentTextWebBrowser 속성은 현재 문서의 HTML을 처음 표시되었을 때의 상태로 반환합니다. 그러나 AppendChildInnerHtml과 같은 메서드 및 속성 호출을 사용하여 페이지를 수정하는 경우 DocumentStreamDocumentText를 호출해도 해당 변경 내용이 표시되지 않습니다. DOM의 최신 HTML 소스를 가져오려면 HTML 요소에 대해 OuterHtml 속성을 호출해야 합니다.

다음 절차에서는 동적 소스를 검색하여 별도의 바로 가기 메뉴에 표시하는 방법을 보여줍니다.

OuterHtml 속성을 사용하여 동적 소스 검색

  1. 새 Windows Forms 애플리케이션을 만듭니다. 먼저 Form 하나를 만들어 이름을 Form1로 지정합니다.

  2. Windows Forms 애플리케이션에서 WebBrowser 컨트롤을 호스팅하고 이름을 WebBrowser1로 지정합니다. 자세한 내용은 방법: Windows Forms 애플리케이션에 웹 브라우저 기능 추가를 참조하세요.

  3. 애플리케이션에서 CodeForm이라는 두 번째 Form을 만듭니다.

  4. RichTextBox 컨트롤을 CodeForm에 추가하고 해당 Dock 속성을 Fill로 설정합니다.

  5. CodeForm에 대해 Code라는 공용 속성을 만듭니다.

    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
    
  6. Button1이라는 Button 컨트롤을 Form에 추가하고 Click 이벤트를 모니터링합니다. 이벤트 모니터링에 대한 자세한 내용은 이벤트를 참조하세요.

  7. 다음 코드를 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
    

강력한 프로그래밍

검색을 시도하기 전에 항상 Document의 값을 테스트해야 합니다. 현재 페이지의 로드가 완료되지 않으면 Document 또는 하나 이상의 해당 자식 개체가 초기화되지 않을 수 있습니다.

참고 항목