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
iFRAME
, które tworzą stałe okna.
-lub-
- Za pomocą tagu
IFRAME
, który tworzy przestawne okno, które można zmienić w czasie wykonywania.
Ponieważ ramki zawierają dokumenty HTML, są one reprezentowane w modelu obiektów dokumentów (DOM) jako zarówno elementy okna, jak i elementy ramki.
Gdy uzyskujesz dostęp do tagu
FRAME
lubIFRAME
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.Gdy uzyskujesz dostęp do tagu
FRAME
lubIFRAME
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 FRAME
znajdującymi się w różnych domenach, te FRAME
nie 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ż
.NET Desktop feedback