Доступ к фреймам с использованием управляемой объектной модели HTML-документов
Некоторые HTML-документы состоят из кадров, или windows, которые могут содержать другие документы HTML. Использование фреймов упрощает создание HTML-страниц, в которых одна или несколько частей страницы остаются статичными, например панель навигации, а в остальных фреймах содержимое постоянно изменяется.
Авторы HTML-кода могут создавать фреймы одним из двух способов:
- С помощью тегов
FRAMESET
иFRAME
, которые создают фиксированные окна.
-или-
- С помощью тега
IFRAME
, он создает плавающее окно, которое может быть перемещено во время выполнения.
Так как фреймы содержат HTML-документы, то в объектной модели документа (DOM) они представлены и как элементы-окна и как элементы-фреймы.
При доступе к тегу
FRAME
илиIFRAME
с использованием коллекции Frames 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 для отображения веб-сайта Б, то доступ к данным веб-сайта Б будет отсутствовать.