Udostępnij za pośrednictwem


Porady: uzyskiwanie dostępu do modelu DOM (Document Object Model) zarządzanych dokumentów HTML

Dostęp do zarządzanego modelu obiektów dokumentów HTML (DOM) można uzyskać z dwóch typów aplikacji:

  • Aplikacja Windows Forms (.exe), która hostuje zarządzaną WebBrowser kontrolkę. Te dwie technologie uzupełniają się wzajemnie, a WebBrowser kontrolka wyświetlającą stronę użytkownikowi i DOM HTML reprezentującą strukturę logiczną dokumentu.

  • Formularze systemu UserControl Windows hostowane w programie Internet Explorer. Dostęp do modelu DOM HTML reprezentujący stronę, na której UserControl jest hostowana, w celu zmiany struktury dokumentu lub otwartych modalnych okien dialogowych, między innymi.

Aby uzyskać dostęp do modelu DOM z poziomu aplikacji Windows Forms

  1. Hostowanie kontrolki WebBrowser w aplikacji Windows Forms i monitorowanie zdarzenia DocumentCompleted . Aby uzyskać szczegółowe informacje na temat hostowania kontrolek i monitorowania zdarzeń, zobacz Zdarzenia.

  2. Pobierz element HtmlDocument dla bieżącej strony, korzystając Document z właściwości kontrolki WebBrowser .

Aby uzyskać dostęp do modelu DOM z poziomu elementu UserControl hostowanego w programie Internet Explorer

  1. Utwórz własną niestandardową klasę pochodną UserControl klasy . Aby uzyskać więcej informacji, zobacz How to: Author Composite Controls (Instrukcje: tworzenie kontrolek złożonych).

  2. Umieść następujący kod wewnątrz programu obsługi zdarzeń ładowania dla elementu 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

Niezawodne programowanie

  1. W przypadku używania modelu DOM za pomocą kontrolki WebBrowser należy zawsze czekać, aż DocumentCompleted zdarzenie nastąpi przed podjęciem próby uzyskania dostępu Document do właściwości kontrolki WebBrowser . Zdarzenie DocumentCompleted jest zgłaszane po załadowaniu całego dokumentu. Jeśli wcześniej używasz modelu DOM, ryzyko wystąpienia wyjątku czasu wykonywania w aplikacji.

Zabezpieczenia.NET Framework

  1. Aplikacja lub UserControl wymaga pełnego zaufania w celu uzyskania dostępu do zarządzanego modelu DOM HTML. Jeśli wdrażasz aplikację Windows Forms przy użyciu technologii ClickOnce, możesz zażądać pełnego zaufania przy użyciu podniesienia uprawnień lub wdrożenia zaufanej aplikacji; Aby uzyskać szczegółowe informacje, zobacz Zabezpieczanie aplikacji ClickOnce.

Zobacz też