다음을 통해 공유


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

다음과 같은 두 가지 유형의 애플리케이션에서 관리되는 HTML DOM(문서 개체 모델)에 액세스할 수 있습니다.

  • 관리되는 WebBrowser 컨트롤을 호스팅하는 Windows Forms 애플리케이션(.exe). 이러한 두 가지 기술은 서로를 보완하며 WebBrowser 컨트롤을 통해 사용자에게 페이지를 표시하고 HTML DOM을 통해 문서의 논리 구조를 나타냅니다.

  • Internet Explorer 내에서 호스팅되는 UserControl. UserControl이 호스팅되는 페이지를 나타내는 HTML DOM에 액세스하여 문서 구조를 변경하거나 모달 대화 상자를 여는 등 여러 작업을 수행할 수 있습니다.

Windows Forms 애플리케이션에서 DOM에 액세스하려면

  1. Windows Forms 애플리케이션 내에서 WebBrowser 컨트롤을 호스팅하고 DocumentCompleted 이벤트를 모니터링합니다. 컨트롤 호스팅 및 이벤트 모니터링에 대한 자세한 내용은 이벤트를 참조하세요.

  2. HtmlDocument 컨트롤의 Document 속성에 액세스하여 현재 페이지에 대해 WebBrowser를 검색합니다.

Internet Explorer에서 호스팅되는 UserControl에서 DOM에 액세스하려면

  1. UserControl 클래스의 고유한 사용자 지정 파생 클래스를 만듭니다. 자세한 내용은 방법: 복합 컨트롤 제작을 참조하세요.

  2. UserControl의 로드 이벤트 처리기 내에 다음 코드를 삽입합니다.

HtmlDocument doc = null;

private void UserControl1_Load(object sender, EventArgs e)
{
    if (this.Site != null)
    {
        doc = (HtmlDocument)this.Site.GetService(typeof(HtmlDocument));
    }
}
Private Sub UserControl1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    If (Me.Site IsNot Nothing) Then
        Dim Doc As HtmlDocument = CType(Me.Site.GetService(Type.GetType("System.Windows.Forms.HtmlDocument")), HtmlDocument)
    End If
End Sub

강력한 프로그래밍

  1. WebBrowser 컨트롤을 통해 DOM을 사용할 때는 항상 DocumentCompleted 이벤트가 발생할 때까지 기다린 후에 Document 컨트롤의 WebBrowser 속성 액세스를 시도해야 합니다. 전체 문서가 로드되고 나면 DocumentCompleted 이벤트가 발생합니다. 그 전에 DOM을 사용하면 애플리케이션에서 런타임 예외가 발생할 위험이 있습니다.

.NET Framework 보안

  1. 관리되는 HTML DOM에 액세스하려면 애플리케이션 또는 UserControl을 완전히 신뢰해야 합니다. ClickOnce를 사용하여 Windows Forms 애플리케이션을 배포하는 경우 권한 상승 또는 신뢰할 수 있는 애플리케이션 배포를 통해 완전 신뢰를 요청할 수 있습니다. 자세한 내용은 ClickOnce 애플리케이션 보안을 참조하세요.

참고 항목