¿Por qué los marcos quedaron obsoletos en HTML5, pero no en iFrames? Después de todo, casi no hay diferencia entre los dos. En muchos casos, usar cualquiera de ellos daría el mismo resultado (perdón si estoy equivocado)?
¿Por qué los marcos quedaron obsoletos en HTML5, pero no en iFrames? Después de todo, casi no hay diferencia entre los dos. En muchos casos, usar cualquiera de ellos daría el mismo resultado (perdón si estoy equivocado)?
Respuestas:
Hay un par de ideas falsas en tu publicación. Primero, los elementos frame
y frameset
no están en desuso en HTML5, son obsoletos (es decir, se han eliminado por completo).
Segundo, los elementos frame
y frameset
no son lo mismo que el iframe
elemento, ni dan el mismo resultado:
El frameset
elemento reemplaza al elemento del cuerpo en las páginas como un medio para incluir un modelo de documento diferente para las páginas web: son malas para la usabilidad y accesibilidad, y lo que pretendían lograr ha sido reemplazado por CSS y el desarrollo ubicuo del lado del servidor.
El iframe
elemento, por otro lado, no reemplaza el cuerpo de una página. Actúa como un medio para incluir un nuevo contexto de navegación incrustado dentro de un bloque de contenido. No sufre los mismos problemas de usabilidad o accesibilidad que el modelo de conjunto de marcos y se usa en casi cualquier lugar donde se necesita incluir un contexto de navegación incrustado (los widgets son el ejemplo más prolífico). 1
El iframe
HTML5 también adquiere características adicionales, ya que puede ser protegido , permitiendo que el documento padre decida qué se ejecuta dentro de él. Esto permite cierta medida de seguridad para el documento principal (y los visitantes del documento principal) al incrustar contenido no confiable.
Nota 1: el object
elemento se superpone un poco con el iframe
elemento, pero tiene un modelo de contenido diferente (que está destinado principalmente a complementos), tiene su propio conjunto de advertencias y no tiene los atributos de sandboxing iframe
que tiene el elemento.
Los marcos (conjunto de marcos) actúan como documento. Se elimina porque rompe la estructura y la navegación de los documentos HTML. P.ej. tiene enlaces en un marco, contenido en el otro, no puede abrir el enlace desde la página en una nueva ventana, no puede enlazar a una subpágina específica, etc.
Por otro lado, los iframes no romperán nada si se usan correctamente porque están destinados al contenido de sandbox (por ejemplo, anuncios).
Los conjuntos de marcos a menudo se usan de manera que rompen el principio fundamental de la Web: que cada documento tiene una única URL. Esto lleva a problemas con enlaces, marcadores, motores de búsqueda, etc.
El uso típico de un conjunto de marcos sería un marco en la parte superior con un logotipo o encabezado, un marco al lado con un menú y un marco de contenido. Pero los motores de búsqueda indexan páginas individuales, por lo que cuando encuentre alguna página en Google, se vincularía directamente a la página de contenido sin el conjunto de marcos, por lo que perderá la navegación. El problema con los enlaces y marcadores es que normalmente desea vincular o marcar una página de contenido en particular dentro del conjunto de marcos, sin perder el conjunto de marcos en sí. La no es una manera fácil de hacer eso.
La razón por la que los conjuntos de marcos se hicieron populares en primer lugar fue porque permitieron un encabezado y un menú posicionados estáticamente con un área de contenido desplazable. Pero eso se puede lograr mucho más fácilmente con CSS hoy. Además, los marcos le permitieron usar elementos comunes como logotipos y menús en varias páginas sin usar ninguna codificación del lado del servidor. Esto fue una ventaja en un momento en que la codificación del lado del servidor era tediosa y propensa a errores (es decir, scripts CGI), y muchos hosts no permitían la creación de secuencias de comandos del lado del servidor. Hoy en día, con Content Management Systems (CMS) y mejores plataformas del lado del servidor, esto se maneja mucho mejor en el lado del servidor.
Básicamente, no hay ventajas al usar un conjunto de marcos, solo muchos problemas.
Los IFrames se pueden usar de la misma manera que se usaron los conjuntos de marcos, y en ese caso también conducen a los mismos problemas. Pero también hay muchos usos legítimos de iframes que no conducen a los mismos problemas.