방법: 관리형 HTML 문서 개체 모델에서 HTML 원본 액세스
DocumentStream 컨트롤의 DocumentText 및 WebBrowser 속성은 현재 문서의 HTML을 처음 표시되었을 때의 상태로 반환합니다. 그러나 AppendChild 및 InnerHtml과 같은 메서드 및 속성 호출을 사용하여 페이지를 수정하는 경우 DocumentStream 및 DocumentText를 호출해도 해당 변경 내용이 표시되지 않습니다. DOM의 최신 HTML 소스를 가져오려면 HTML 요소에 대해 OuterHtml 속성을 호출해야 합니다.
다음 절차에서는 동적 소스를 검색하여 별도의 바로 가기 메뉴에 표시하는 방법을 보여줍니다.
OuterHtml 속성을 사용하여 동적 소스 검색
새 Windows Forms 애플리케이션을 만듭니다. 먼저 Form 하나를 만들어 이름을
Form1
로 지정합니다.Windows Forms 애플리케이션에서 WebBrowser 컨트롤을 호스팅하고 이름을
WebBrowser1
로 지정합니다. 자세한 내용은 방법: Windows Forms 애플리케이션에 웹 브라우저 기능 추가를 참조하세요.애플리케이션에서
CodeForm
이라는 두 번째 Form을 만듭니다.RichTextBox 컨트롤을
CodeForm
에 추가하고 해당 Dock 속성을Fill
로 설정합니다.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
Button1
이라는 Button 컨트롤을 Form에 추가하고 Click 이벤트를 모니터링합니다. 이벤트 모니터링에 대한 자세한 내용은 이벤트를 참조하세요.다음 코드를 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 또는 하나 이상의 해당 자식 개체가 초기화되지 않을 수 있습니다.
참고 항목
.NET Desktop feedback