Комментарии 9
В прошлом году тоже пришлось задействовать iframe. Делали систему управления документацией для норвежского строительного конгломерата, одним из требований было печать документов с оглавлением с номерами страниц. Из-за этого встроенная в браузер печать не подходила — в стандарте CSS такая возможность вроде бы есть, но ее никто не поддерживает, кроме софтины PrinceXML. Единственным вариантом было — выгонять в PDF с её помощью и отдавать пользователю этот файл.
Поскольку веб-приложение было построено в виде SPA + REST API, надо было уметь собрать HTML и отправить его на бэкенд, который отсылал его в DocRaptor. И вот чтобы собрать эту страничку, использовался как раз невидимый (left: -10000px
) iframe, в который грузится специальный роут без лишних элементов оформления и со специфичными стилями, рендерится и во Vue.nextTick сообщает родительской странице о своей готовности.
Вот так устаревший тэг сохранил мне работу:)
Корректней всегда (в том числе, в заголовке) говорить «элемент», а не «тег».
О, помню ещё до Ajax/jquery/xmlhttp через iframe можно было без перезагрузки основной страницы обмениваться данными с сервером, получать сериализованный в JS-array объект (дяди Джейсона тогда ещё не было), и обновлять данные на основной странице через DOM. Было это в 1999 году :)
1. реклама
2. аналитика
3. видео с ютуба
4. игры
// пишут бесконечные статьи, не советуя им пользоваться
открываем главную страницу Яндекса, открываем отладчик, смотрим тег iframe, хммм
открываем страницу Google, даже минималистичную, открываем отладчик, хммм
Ну, похоже, авторы этих статей не работают ни в Яндексе, ни в Гугле )
В Safari уже давно не работает.
Как-то продавали японцам софт, модуль которого делал on-the-fly анализ всех загружаемых страниц на компах всех сотрудников (несколько сот тысяч компов), и вот их фирменное, основное приложение стало загружаться с нашим софтом с 30-секундной задержкой. Все в шоке, контракт накрывается. Стали смотреть логи, а в их простеньком приложении 125 фреймов на первой же страничке типа "введите имя итпароль"! А на каждый фрейм у нас создавался свой сложный объект-анализатор. Потом выяснили, что их приложение автогенерилось японским же генератором приложений какой-то еще одной фирмы. Ну и 125 фреймов на login-страничке, а чо. В-)
X-Frame-Options
: deny, sameorigin, allow-from uri.Либо его аналог в политике CSP:
Content-Security-Policy: frame-ancestors source;
Content-Security-Policy: frame-ancestors source source;
подробнее можно ознакомиться здесь: habr.com/ru/post/317720
Исчерпывающий путеводитель по тегу iframe