Почему фреймы не поддерживаются в HTML5, а не iFrames? В конце концов, между ними почти нет различий. Во многих случаях использование любого из них даст одинаковый результат (простите, если я ошибаюсь)?
Почему фреймы не поддерживаются в HTML5, а не iFrames? В конце концов, между ними почти нет различий. Во многих случаях использование любого из них даст одинаковый результат (простите, если я ошибаюсь)?
Ответы:
В вашем посте есть несколько заблуждений. Во- первых, frame
и frameset
элементы не осуждается в HTML5, они устарели (т.е. они были полностью удалены).
Во- вторых, frame
и frameset
элементы не то же самое , как iframe
элемент, они не дают одинаковый результат:
frameset
Элемент заменяет элемент тела в страницах в качестве средства для включения в другую модель документа для веб - страниц: они плохо для удобства и доступности, а также то , что они намеревались достичь, были полностью заменены CSS и развития повсеместной на стороне сервера.
iframe
Элемент, с другой стороны, не заменяет тело страницы. Он действует как средство для включения нового контекста просмотра, встроенного в блок контента. Он не страдает от тех же проблем с юзабилити или доступностью, что и модель набора фреймов, и используется практически везде, где необходимо включить встроенный контекст просмотра (виджеты являются наиболее плодотворным примером). 1
В iframe
HTML5 также предусмотрены дополнительные функции, заключающиеся в том, что он может быть изолированным , позволяя родительскому документу решать, что будет выполнено в нем. Это обеспечивает некоторую степень безопасности для родительского документа (и посетителей родительского документа) при встраивании ненадежного контента.
Примечание 1:object
элемент несколько перекрывается с iframe
элементом, но имеет другую модель содержания (которая предназначена в основном для плагинов), имеет свой собственный набор предостережений, и не имеет песочницу атрибуты iframe
элемент имеет.
Рамки (frameset) действует как документ. Он удален, потому что нарушает структуру HTML-документов и навигацию. Например. у вас есть ссылки в одном фрейме, контент в другом, вы не можете открыть ссылку со страницы в новом окне, вы не можете ссылаться на определенную подстраницу и т. д.
С другой стороны, iframes ничего не сломает, если используется правильно, потому что они предназначены для содержимого песочницы (например, рекламы).
Наборы фреймов часто используются таким образом, что они нарушают фундаментальный принцип Интернета - каждый документ имеет один URL. Это приводит к проблемам со ссылками, закладками, поисковыми системами и т. Д.
Типичное использование набора фреймов - это рамка сверху с логотипом или заголовком, рамка сбоку с меню и рамка контента. Но поисковые системы индексируют отдельные страницы, поэтому, когда вы найдете какую-либо страницу в Google, она будет ссылаться непосредственно на страницу контента без набора фреймов, и вы потеряете навигацию. Проблема со ссылками и закладками заключается в том, что вы обычно хотите связать или добавить в закладки определенную страницу содержимого внутри набора фреймов, не теряя сам набор фреймов. Это не простой способ сделать это.
Во-первых, фреймы стали популярными, потому что они позволили статически позиционировать заголовок и меню с прокручиваемой областью содержимого. Но это может быть достигнуто гораздо проще с помощью CSS сегодня. Кроме того, фреймы позволили вам использовать общие элементы, такие как логотипы и меню, на нескольких страницах без какого-либо кодирования на стороне сервера. Это было преимуществом в то время, когда кодирование на стороне сервера было утомительным и подверженным ошибкам (например, CGI-скрипты), а многие хосты вообще не допускали сценарии на стороне сервера. Сегодня с системами управления контентом (CMS) и лучшими серверными платформами, это намного лучше обрабатывается на стороне сервера.
Таким образом, в основном нет никаких преимуществ в использовании набора фреймов, просто много проблем.
IFrames можно использовать так же, как и наборы кадров , и в этом случае они также приводят к тем же проблемам. Но есть также много законных применений iframe, которые не приводят к тем же самым проблемам.