Поделиться через


Доступ к фреймам в управляемой объектной модели HTML-документа

Некоторые HTML-документы состоят из фреймовили окон, которые могут содержать собственные HTML-документы. Использование кадров упрощает создание HTML-страниц, в которых одна или несколько частей страницы остаются статическими, например панель навигации, а другие кадры постоянно изменяют их содержимое.

Авторы HTML могут создавать кадры одним из двух способов:

  • Использование тегов FRAMESET и FRAME, создающих фиксированные окна.

-или-

  • С помощью тега IFRAME, создающего плавающее окно, которое можно изменить во время выполнения.
  1. Так как кадры содержат HTML-документы, они представлены в объектной модели документа (DOM) как элементы окна, так и элементы фрейма.

  2. При доступе к тегу FRAME или IFRAME с помощью коллекции кадров HtmlWindowвы извлеките элемент окна, соответствующий кадру. Это представляет все динамические свойства кадра, такие как текущий URL-адрес, документ и размер.

  3. Когда вы получаете доступ к тегу 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.

См. также