Доступ к фреймам в управляемой объектной модели HTML-документа
Некоторые HTML-документы состоят из фреймовили окон, которые могут содержать собственные HTML-документы. Использование кадров упрощает создание HTML-страниц, в которых одна или несколько частей страницы остаются статическими, например панель навигации, а другие кадры постоянно изменяют их содержимое.
Авторы HTML могут создавать кадры одним из двух способов:
- Использование тегов
FRAMESET
иFRAME
, создающих фиксированные окна.
-или-
- С помощью тега
IFRAME
, создающего плавающее окно, которое можно изменить во время выполнения.
Так как кадры содержат HTML-документы, они представлены в объектной модели документа (DOM) как элементы окна, так и элементы фрейма.
При доступе к тегу
FRAME
илиIFRAME
с помощью коллекции кадров HtmlWindowвы извлеките элемент окна, соответствующий кадру. Это представляет все динамические свойства кадра, такие как текущий URL-адрес, документ и размер.Когда вы получаете доступ к тегу
FRAME
илиIFRAME
, используя свойство WindowFrameElementHtmlWindow, коллекцию Children или методы, такие как GetElementsByName или GetElementById, вы извлекаете элемент кадра. Это представляет статические свойства кадра, включая URL-адрес, указанный в исходном HTML-файле.
Рамки и безопасность
Доступ к кадрам усложняется тем, что управляемый HTML DOM реализует меру безопасности, известную как безопасность межкадрового сценария. Если документ содержит FRAMESET
с двумя или более FRAME
в разных доменах, эти FRAME
не могут взаимодействовать друг с другом. Другими словами, FRAME
, отображающий содержимое веб-сайта, не может получить доступ к информации в FRAME
, на котором размещен сторонний сайт, например http://www.adatum.com/
. Эта безопасность реализуется на уровне класса HtmlWindow. Вы можете получить общие сведения о FRAME
хостинга другого веб-сайта, например, его URL-адрес, но вы не сможете получить доступ к его Document или изменить размер или расположение их хостинга FRAME
или IFRAME
.
Это правило также применяется к открытым окнам с помощью методов Open и OpenNew. Если открытое окно находится в другом домене от страницы, размещенной в элементе управления WebBrowser, вы не сможете переместить это окно или проверить его содержимое. Эти ограничения также применяются, если вы используете элемент управления WebBrowser для отображения веб-сайта, отличного от веб-сайта, используемого для развертывания приложения на основе Windows Forms. Если вы используете технологию развертывания ClickOnce для установки приложения с веб-сайта A, и вы используете WebBrowser для отображения веб-сайта B, вы не сможете получить доступ к данным веб-сайта B.
См. также
.NET Desktop feedback