Přístup k rámcům ve spravovaném objektovém modelu dokumentu HTML
Některé dokumenty HTML se skládají z rámcůnebo oken, které mohou obsahovat vlastní jedinečné dokumenty HTML. Použití rámců usnadňuje vytváření stránek HTML, ve které jedna nebo více částí stránky zůstává statická, například navigační panel, zatímco obsah ostatních rámců se neustále mění.
Autoři HTML můžou vytvářet rámce jedním ze dvou způsobů:
- Pomocí značek
FRAMESET
aFRAME
, které vytvářejí pevná okna.
-nebo-
- Pomocí značky
IFRAME
, která vytvoří plovoucí okno, které lze přemístit za běhu.
Vzhledem k tomu, že rámce obsahují dokumenty HTML, jsou reprezentovány v modelu DOM (Document Object Model) jako prvky okna i prvky rámce.
Když přistupujete pomocí kolekce rámců HtmlWindowke značce
FRAME
neboIFRAME
, načítáte prvek okna odpovídající rámci. Představuje všechny dynamické vlastnosti rámce, jako je jeho aktuální adresa URL, dokument a velikost.Když přistupujete ke značce
FRAME
neboIFRAME
pomocí WindowFrameElement vlastnosti HtmlWindow, kolekce Children nebo metod, jako jsou GetElementsByName nebo GetElementById, načítáte prvek rámce. Představuje statické vlastnosti rámce, včetně adresy URL zadané v původním souboru HTML.
Rámce a zabezpečení
Přístup k rámcům je komplikovaný tím, že spravovaný HTML DOM implementuje bezpečnostní opatření označované jako zabezpečení skriptování mezi rámci. Pokud dokument obsahuje FRAMESET
se dvěma nebo více FRAME
v různých doménách, nemůžou tyto FRAME
vzájemně komunikovat. Jinými slovy, FRAME
, který zobrazuje obsah z vašeho webu, nemůže získat přístup k informacím v FRAME
, který je hostitelem webu třetí strany, například http://www.adatum.com/
. Toto zabezpečení je implementováno na úrovni třídy HtmlWindow. Můžete získat obecné informace o FRAME
hostující jiný web, například jeho adresu URL, ale nebudete mít přístup k jeho Document nebo změnit velikost nebo umístění hostování FRAME
nebo IFRAME
.
Toto pravidlo platí také pro okna, která otevřete pomocí metod Open a OpenNew. Pokud je otevřené okno v jiné doméně než stránka hostovaná v ovládacím prvku WebBrowser, nebudete moct toto okno přesunout ani prozkoumat jeho obsah. Tato omezení se vynucují také v případě, že použijete ovládací prvek WebBrowser k zobrazení webu, který se liší od webu použitého k nasazení aplikace založené na modelu Windows Forms. Pokud k instalaci aplikace z webu A použijete technologii nasazení ClickOnce a použijete WebBrowser k zobrazení webu B, nebudete mít přístup k datům webu B.
Viz také
.NET Desktop feedback