Например, какая разница между этими:
<iframe srcdoc="<p>Some HTML</p>"></iframe>
<iframe src="data:text/html,<p>Some HTML</p>"></iframe>
[Демо][1]
И, если они точно такие же, почему HTML5 и добавить атрибут srcdoc
?
Редактировать
Может быть, я'т достаточно ясно. Я не сравниваю ГРЦ
с srcdoc
, но ГРЦ
используя текст/HTML URI данных с srcdoc`.
Тогда, если функции график такой
URL-адрес | Да | нет без использования КГД (*) HTML-содержимое | да, используя URI данных | да </пред>
почему srcdoc` нужен?
*() Примечание**:
Кажется, srcdoc
может использоваться, чтобы загрузить страницу по URL ([демо][2]), используя subiframe с `src'attribute:
<iframe srcdoc="<iframe src='http://microsoft.com'></iframe>"></iframe>
Остальные ответы список некоторые внешние различия, но на самом деле промазать из ключевых разницей, что объясняет почему браузеры писателей/спец будет по сути дублировать то, что уже существует:
в <элемент iframe в src="и сведения:...недоверяемый контент" в песочнице /> в
<- обеспечить в современных браузерах, неуверенно в устаревших браузерах без поддержки песочнице
в <тег iframe srcdoc=" и...недоверяемый контент" в песочнице /> в
<- обеспечить в современных браузерах, безопасность (хотя нефункциональные) в устаревших браузерах
Этот новый синтаксис предоставляет авторам возможность защитить своих пользователей, даже когда они могут использовать устаревшие браузеры. Без этого, авторы контента будут неохотно использовать функцию песочница на всех, и он не видел пользы.
От МДН :
<суп>1.</SUP-серфинг> содержание страницы, что внедренный контекст содержать. Это атрибут предполагается использовать вместе с Sandbox и бесшовные атрибутами. Если браузер поддерживает атрибут srcdoc, это будут перекрывать контент, указанный в атрибуте src (если имеется). если браузер не поддерживает атрибут srcdoc, он будет показывать файл, указанный в атрибуте src, а не (если присутствует).
Так, атрибут srcdoc перекрывает контент, встроенные с помощью атрибута src
.
[Демо][1]
Кроме того, что вы говорите о данных следующий фрагмент: текст/HTML
называется URI данных и она имеет свои ограничения..
<суп>2.</суп> данными URI не может быть больше 32768 символов.
<суп>
Элемент iframe с атрибутом ГРЦ
с HTML-контент междоменных
Но iframe со атрибут srcDoc с содержимым HTML-это не крест домена
Как писать - srcdoc в Хром (v36) позволяет установить и извлечения куки, тогда как использование src с URL-адрес данные не:
непойманные SecurityError: не удалось прочитать 'куки' собственность с 'документ': отключены cookies внутри 'данных:' URL-адреса
Это может или может не быть важно для вас, но исключает использование URL-адреса данных в приложение, которое я строю, который является позором, как, конечно, т. е. не'т поддерживать srcdoc настоящее время (В11).
Еще одно заметное отличие заключается в том, что атрибутов src
с данными-поддержка Ури Ури процентов-кодирования правила пока srcdoc
не'т, так как поддерживает обычный синтаксис HTML,
эти источники будут уступать по разному:
в
<iframe srcdoc="<p>hello%20world</p><h1>give%0D%0Ame%0D%0Asome%24</h1>"></iframe>
<iframe src="data:text/html;charset=UTF-8,<p>hello%20datauri<p><h1>give%0D%0A me%0D%0Asome%24</h1>"></iframe>
в
Я также заметил разницу в синтаксисе JS скриптов внутри значений атрибутов( он's наверное больше, чем просто процент-кодирование ), но это'т рисунок правило еще...
В вашем примере две формы функционально идентичны. Однако, вы можете использовать как источник
и srcdoc атрибутов для браузеров HTML5, чтобы использовать
источникверсии, в то время как HTML5 браузеры могут использовать srcdoc версия вместе с
песочницаи
бесшовные` атрибуты, которые обеспечивают большую гибкость в том, как iframe-это лечится.
srcdoc: содержание страницы, что внедренный контекст содержать. Предполагается, что данный атрибут может использоваться совместно с песочницей и бесшовные атрибутами. Если браузер поддерживает атрибут srcdoc, она перекроет контент, указанный в атрибуте src (если имеется). Если браузер не поддерживает атрибут srcdoc, он будет показывать файл, указанный в атрибуте src, а не (если он присутствует).
КГД: URL-адрес страницы для размещения.
Главное отличие состоит в том, что 'НИЦ' атрибут содержит адрес документа, который вы собираетесь вставлять в в <iframe В и GT; тег.
С другой стороны 'srcdoc'атрибут содержит HTML-содержимое страницы, чтобы показать на врезку.
основным недостатком srcdoc заключается в том, что это не поддерживается во всех браузерах, тогда как src совместим со всеми браузерами.
для получения более подробной информации, пожалуйста, перейдите по следующей ссылке: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe