Udostępnij za pośrednictwem


Uzyskiwanie dostępu do ramek w zarządzanym modelu obiektów dokumentów HTML

Niektóre dokumenty HTML składają się z ramek lub okien, które mogą przechowywać własne odrębne dokumenty HTML. Użycie ramek ułatwia tworzenie stron HTML, w których co najmniej jeden fragment strony pozostaje statyczny, taki jak pasek nawigacyjny, podczas gdy inne ramki stale zmieniają zawartość.

Autorzy kodu HTML mogą tworzyć ramki na jeden z dwóch sposobów:

  • Używanie tagów FRAMESET i FRAME, które tworzą stałe okna.

-lub-

  • Za pomocą tagu IFRAME, który tworzy przestawne okno, które można zmienić w czasie wykonywania.
  1. Ponieważ ramki zawierają dokumenty HTML, są one reprezentowane w modelu obiektów dokumentów (DOM) jako zarówno elementy okna, jak i elementy ramki.

  2. Gdy uzyskujesz dostęp do tagu FRAME lub IFRAME przy użyciu kolekcji Ramki HtmlWindow, pobierasz element okna odpowiadający ramce. Reprezentuje to wszystkie właściwości dynamiczne ramki, takie jak jego bieżący adres URL, dokument i rozmiar.

  3. Gdy uzyskujesz dostęp do tagu FRAME lub IFRAME poprzez właściwość WindowFrameElement elementu HtmlWindow, kolekcję Children lub metody, takie jak GetElementsByName czy GetElementById, pobierasz element ramki. Reprezentuje to statyczne właściwości ramki, w tym adres URL określony w oryginalnym pliku HTML.

Ramki i zabezpieczenia

Dostęp do ramek jest skomplikowany przez to, że zarządzany model DOM HTML implementuje środek bezpieczeństwa znany jako bezpieczeństwo skryptów międzyramkowych. Jeśli dokument zawiera FRAMESET z dwoma lub więcej FRAMEznajdującymi się w różnych domenach, te FRAMEnie mogą ze sobą wchodzić w interakcję. Innymi słowy, FRAME wyświetlający zawartość z witryny sieci Web nie może uzyskać dostępu do informacji w FRAME hostującym witrynę innej firmy, taką jak http://www.adatum.com/. Te zabezpieczenia są implementowane na poziomie klasy HtmlWindow. Możesz uzyskać ogólne informacje o FRAME, który hostuje inną stronę internetową, jak na przykład jej adres URL. Jednakże nie będziesz mógł uzyskać dostępu do jej Document ani zmienić rozmiaru lub lokalizacji, w której jest hostowana FRAME lub IFRAME.

Ta reguła dotyczy również okien otwartych przy użyciu metod Open i OpenNew. Jeśli otwarte okno znajduje się w innej domenie niż strona hostowana w kontrolce WebBrowser, nie będzie można przenieść tego okna ani zbadać jego zawartości. Te ograniczenia są również wymuszane, jeśli używasz kontrolki WebBrowser do wyświetlania witryny sieci Web innej niż witryna sieci Web używana do wdrażania aplikacji opartej na formularzach systemu Windows. Jeśli używasz technologii wdrażania ClickOnce do instalowania aplikacji z witryny sieci Web A i używasz WebBrowser do wyświetlania witryny sieci Web B, nie będzie można uzyskać dostępu do danych witryny sieci Web B.

Zobacz też