방법: 관리되는 HTML 문서 개체 모델에 액세스
업데이트: 2007년 11월
관리되는 HTML DOM(문서 개체 모델)은 다음 두 가지 종류의 응용 프로그램에서 액세스할 수 있습니다.
관리되는 WebBrowser 컨트롤을 호스팅하는 Windows Forms 응용 프로그램(.exe). 이 두 기술은 사용자에게 페이지를 표시하는 WebBrowser 컨트롤과 문서의 논리 구조를 나타내는 HTML DOM으로 서로 보완됩니다.
Internet Explorer 내에서 호스팅되는 Windows Forms UserControl. 다른 많은 가능성 중에 문서 구조를 변경하거나 모달 대화 상자를 변경하기 위해 UserControl이 호스팅되는 페이지를 나타내는 HTML DOM에 액세스할 수 있습니다.
Windows Forms 응용 프로그램에서 DOM에 액세스하려면
Windows Forms 응용 프로그램 내에서 WebBrowser 컨트롤을 호스팅하고 DocumentCompleted 이벤트를 모니터링합니다. 컨트롤 호스팅 및 이벤트 모니터링에 대한 자세한 내용은 이벤트 사용을 참조하십시오.
WebBrowser 컨트롤의 Document 속성에 액세스하여 현재 페이지의 HtmlDocument를 가져옵니다.
Internet Explorer에서 호스팅되는 UserControl에서 DOM에 액세스하려면
UserControl 클래스의 사용자 지정 파생 클래스를 직접 만듭니다. 자세한 내용은 방법: 합성 컨트롤 제작을 참조하십시오.
UserControl에 대한 Load 이벤트 처리기 내부에 다음 코드를 넣습니다.
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
HtmlDocument doc = null;
private void UserControl1_Load(object sender, EventArgs e)
{
if (this.Site != null)
{
doc = (HtmlDocument)this.Site.GetService(typeof(HtmlDocument));
}
}
강력한 프로그래밍
- WebBrowser 컨트롤을 통해 DOM을 사용할 때는 항상 WebBrowser 컨트롤의 Document 속성에 액세스하기 전에 DocumentCompleted 이벤트가 발생할 때까지 기다려야 합니다. DocumentCompleted 이벤트는 전체 문서가 로드된 후에 발생합니다. 그 전에 DOM을 사용하면 응용 프로그램에서 런타임 예외가 발생할 수 있습니다.
보안
- 관리되는 HTML DOM에 액세스하기 위해서는 응용 프로그램이나 UserControl에 완전 신뢰가 필요합니다. ClickOnce를 사용하여 Windows Forms 응용 프로그램을 배포할 경우, Permission Elevation이나 Trusted Application Deployment를 사용하여 완전 신뢰를 요청할 수 있습니다. 자세한 내용은 ClickOnce 배포 개요 및 ClickOnce 배포 및 보안을 참조하십시오.