<iframe>
Елемент iframe представляє вкладений контекст перегляду. Стандарт HTML 5 - " <iframe>
Елемент"
В основному використовується для включення ресурсів з інших доменів або субдоменів, але може також використовуватися для включення вмісту з того самого домену. В <iframe>
«сила сек є те , що вбудований код" живий "і може обмінюватися даними з батьківським документом.
<embed>
Стандартизований у HTML 5, до цього це був нестандартний тег, який, правда, був реалізований усіма основними браузерами. Поведінка до HTML 5 може відрізнятися ...
Елемент вбудовування забезпечує точку інтеграції для зовнішнього (як правило, не HTML) програми чи інтерактивного вмісту. ( Стандарт HTML 5 - " <embed>
Елемент" )
Використовується для вставки вмісту для плагінів браузера. Винятком є SVG та HTML, які обробляються по-різному відповідно до стандарту.
Детальніше про те, що можна, а що не можна зробити із вбудованим вмістом, залежить від плагіна браузера. Але для SVG ви можете отримати доступ до вбудованого документа SVG від батьків із чимось на зразок:
svg = document.getElementById("parent_id").getSVGDocument();
Зсередини вбудованого документа SVG або HTML ви можете зв’язатися з батьків за допомогою:
parent = window.parent.document;
Для вбудованого HTML не існує можливості отримати вбудований документ від батьківського (що я знайшов).
<object>
<object>
Елемент може являти собою зовнішній ресурс, який, в залежності від типу ресурсу, або буде розглядатися як зображення, як вкладений контекст перегляду, або як зовнішній ресурс повинен бути оброблений плагін. ( Стандарт HTML 5 - " <object>
Елемент" )
Висновок
Якщо ви не вставляєте SVG або щось статичне, вам, мабуть, найкраще користуватися <iframe>
. Щоб включити використання SVG <embed>
(якщо я правильно пам’ятаю<object>
, не дозволять вам сценарій †). Чесно кажучи, я не знаю, чому б ви користувалися, <object>
якщо тільки для старих браузерів або флеш-версій (з якими я не працюю)
† Як зазначено в коментарях нижче; <object>
запускаються сценарії , але батьківський та дочірній контексти не можуть безпосередньо спілкуватися. З ним <embed>
можна отримати контекст дитини від батьків і навпаки. Це означає , що ви можете використовувати скрипти в батьківському маніпулювати дитини і т.д. Ця частина не представляється можливим з <object>
або <iframe>
де ви повинні створити якийсь - то інший механізм , а НЕ , наприклад, в API JavaScript PostMessage .