Freigeben über


Zugreifen auf Frames im verwalteten HTML-Dokumentobjektmodell

Einige HTML-Dokumente bestehen aus Frames bzw. Fenstern, die eigene HTML-Dokumente enthalten können. Mit Frames ist es ganz einfach, HTML-Seiten zu erstellen, auf denen ein oder mehrere Teile statisch bleiben, wie die Navigationsleiste, während sich der Inhalt der anderen Frames permanent ändert.

HTML-Autoren können Frames in einer von zwei Weisen erstellen:

  • Unter Verwendung der Tags FRAMESET und FRAME, womit feste Fenster erstellt werden,

Oder

  • mithilfe des Tags IFRAME, mit dem ein unverankertes Fenster erstellt wird, das zur Laufzeit neu positioniert werden kann.
  1. Da Frames HTML-Dokumente enthalten, werden sie im DOM (Document Object Model) sowohl als Fensterelemente als auch als Frameelemente dargestellt.

  2. Wenn Sie mit der Frames-Auflistung von HtmlWindow auf ein FRAME- oder IFRAME-Tag zugreifen, rufen Sie ein Fensterelement ab, das dem Frame entspricht. Dies repräsentiert alle dynamischen Eigenschaften des Frames, wie die aktuelle URL, das Dokument und die Größe.

  3. Wenn Sie über die WindowFrameElement-Eigenschaft von HtmlWindow, die Children-Auflistung oder mit Methoden wie GetElementsByName oder GetElementById auf ein FRAME- oder IFRAME-Tag zugreifen, rufen Sie das Frameelement ab. Dies repräsentiert die statischen Eigenschaften des Frames, einschließlich der URL, die in der ursprünglichen HTML-Datei angegeben wurde.

Frames und Sicherheit

Der Zugriff auf Frames wird verkompliziert von der Tatsache, dass das verwaltete HTML DOM eine Sicherheitsmaßnahme implementiert, die als Cross-Frame Scripting Security (frameübergreifende Sicherheit bei der Skripterstellung) bezeichnet wird. Wenn ein Dokument ein FRAMESET mit zwei oder mehr FRAMEs in unterschiedlichen Domänen enthält, können diese FRAMEs nicht miteinander interagieren. Anders ausgedrückt, ein FRAME, in dem Inhalte Ihrer Website angezeigt werden, kann nicht auf Informationen in einem FRAME-Element zugreifen, das eine Drittanbieterwebsite wie http://www.adatum.com/ hostet. Diese Sicherheitsmaßnahme wird auf der Ebene der HtmlWindow-Klasse implementiert. Sie können allgemeine Informationen zu einem FRAME abrufen, der Informationen von einer anderen Website hostet, wie dessen URL, sind aber nicht in der Lage, auf dessen Document zuzugreifen oder die Größe oder den Speicherort des Host-FRAMEs oder -IFRAMEs zu ändern.

Diese Regel gilt auch für Fenster, die sie mit den Methoden Open und OpenNew öffnen. Wenn sich das von Ihnen geöffnete Fenster in einer anderen Domäne als die Seite befindet, die im WebBrowser-Steuerelement gehostet wird, können Sie dieses Fenster nicht verschieben und dessen Inhalt nicht überprüfen. Diese Einschränkungen gelten auch, wenn Sie ein WebBrowser-Steuerelement zum Anzeigen einer Website verwenden, die sich von der Website unterscheidet, die zum Bereitstellen Ihrer Windows Forms-basierten Anwendung verwendet wird. Wenn Sie die ClickOnce-Bereitstellungstechnologie zum Installieren Ihrer Website auf Website A und dann WebBrowser zum Anzeigen von Website B verwenden, können Sie auf die Daten von Website B nicht zugreifen.

Weitere Informationen