Поиск…


параметры

атрибут подробности
name Задает имя элемента, который будет использоваться с a теге , чтобы изменить Iframe в src .
width Устанавливает ширину элемента в пикселях.
height Устанавливает высоту элемента в пикселях.
src Задает страницу, которая будет отображаться в кадре.
srcdoc Задает контент, который будет отображаться в кадре, при условии, что браузер поддерживает его. Содержимое должно быть действительным HTML.
sandbox Когда установлено, содержимое iframe рассматривается как уникальное происхождение, и функции, включая скрипты, плагины, формы и всплывающие окна, будут отключены. Ограничения могут быть выборочно расслаблены, добавляя список значений, разделенных пробелом. См. Таблицу в примечаниях для возможных значений.
allowfullscreen Разрешить ли содержимому iframe использовать requestFullscreen()

замечания

IFrame используется для встраивания другого документа в текущий HTML-документ.

Вы можете использовать iframes для отображения:

  • другие HTML-страницы в одном домене;
  • другие HTML-страницы в другом домене (см. ниже - политика одинакового происхождения);
  • PDF-документы (хотя IE может иметь некоторые проблемы, этот вопрос может помочь);

Вы ДОЛЖНЫ использовать iframe в качестве последнего средства, поскольку у него есть проблемы с закладок и навигации, и всегда есть лучшие варианты, отличные от iframe. Этот вопрос должен помочь вам лучше понять взлеты и падения iframes.


Политика же происхождения

Некоторые сайты не могут отображаться с использованием iframe, поскольку они применяют политику, называемую политикой «один и тот же источник» . Это означает, что сайт, на котором лежит iframe, должен находиться в том же домене, что и отображаемый.

Эта политика также применяется для управления содержимым, которое находится внутри iFrame. Если iFrame обращается к содержимому из другого домена, вы не сможете получить доступ к содержимому внутри iFrame или манипулировать им.

Элемент iframe на W3C


атрибут sandbox

Атрибут sandbox при установке добавляет дополнительные ограничения для iframe. Для ослабления этих ограничений можно использовать список токенов, разделенных пробелами.

Значение подробности
allow-forms Позволяет отправлять формы.
allow-pointer-lock Включает API-интерфейс JavaScript-указателя.
allow-popups Всплывающие окна могут быть созданы с помощью window.open или <a target="_blank"
allow-same-origin В документе iframe используется реальное происхождение, а не уникальное. Если используется с allow-scripts документ iframe может удалить всю песочницу, если она имеет тот же источник, что и родительский документ.
allow-scripts Включает скрипты. Документ iframe и родительский документ могут взаимодействовать друг с другом с помощью API postMessage() . Если используется с allow-same-origin документ iframe может удалить всю песочницу, если она имеет тот же источник, что и исходный документ.
allow-top-navigation Позволяет содержимому iframe изменять местоположение документа верхнего уровня.

Основы встроенной структуры

Термин «IFrame» означает «Встроенный кадр». Его можно использовать для включения другой страницы на вашу страницу. Это даст небольшой кадр, который показывает точное содержимое base.html .

<iframe src="base.html"></iframe>

Установка размера рамки

IFrame может быть изменен с использованием атрибутов width и height , где значения представлены в пикселях (HTML 4.01 разрешено процентное значение, но HTML 5 допускает только значения в пикселях CSS).

<iframe src="base.html" width="800" height="600"></iframe>

Использование якорей с IFrames

Обычно изменение веб-страницы в iframe инициируется с помощью Iframe, например, щелкая ссылку внутри Ifame. Тем не менее, можно изменить содержимое IFrame из-за пределов IFrame. Вы можете использовать якорь тег , чье href атрибут установлен желаемый URL и чей target атрибут установлен в Iframe по name атрибута.

<iframe src="webpage.html" name="myIframe"></iframe>
<a href="different_webpage.html" target="myIframe">Change the Iframe content to different_webpage.html</a>

Использование атрибута «srcdoc»

srcdoc может использоваться (вместо атрибута src ) для указания точного содержимого iframe как целого HTML-документа. Это даст IFrame с текстом «IFrames классные!».

<iframe srcdoc="<p>IFrames are cool!</p>"></iframe>

Если атрибут srcdoc не поддерживается браузером, IFrame вместо этого вернется к использованию атрибута src , но если оба атрибута src и srcdoc присутствуют и поддерживаются браузером, srcdoc имеет приоритет.

<iframe srcdoc="<p>Iframes are cool!</p>" src="base.html"></iframe>

В приведенном выше примере, если браузер не поддерживает атрибут srcdoc , он будет отображать содержимое страницы base.html .

Песочница

Следующие внедряют ненадежную веб-страницу с включенными ограничениями

<iframe sandbox src="http://example.com/"></iframe>

Чтобы страница запускала сценарии и отправляла формы, добавьте allow-scripts и allow-forms к sandbox attribute .

<iframe sandbox="allow-scripts allow-forms" src="http://example.com/"></iframe>

Если есть ненадежный контент (например, комментарии пользователей) в том же домене, что и родительская веб-страница, iframe может использоваться для отключения сценариев, в то же время позволяя родительскому документу взаимодействовать с его содержимым с помощью JavaScript.

<iframe sandbox="allow-same-origin allow-top-navigation" src="http://example.com/untrusted/comments/page2">

Родительский документ может добавлять прослушиватели событий и изменять размер IFrame в соответствии с его содержимым. Это, наряду с allow-top-navigation , может сделать изолированный iframe, как представляется, частью родительского документа.

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

Также имейте в виду, что эта песочница может быть подорвана злоумышленником, убеждая пользователя напрямую посетить источник iframe. Для уменьшения этой атаки можно использовать HTTP-заголовок политики безопасности контента .



Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow