¿Por qué los marcos están obsoletos en HTML5, pero no los iFrames? Después de todo, casi no hay diferencia entre los dos. En muchos casos, el uso de cualquiera de ellos daría el mismo resultado (¿perdóname si estoy equivocado)?
¿Por qué los marcos están obsoletos en HTML5, pero no los iFrames? Después de todo, casi no hay diferencia entre los dos. En muchos casos, el uso de cualquiera de ellos daría el mismo resultado (¿perdóname si estoy equivocado)?
Hay un par de ideas erróneas en tu publicación. Primero, los elementos frame
y frameset
no están en desuso en HTML5, están obsoletos (es decir, se han eliminado por completo).
Segundo, los elementos frame
y frameset
no son lo mismo que el elemento iframe
, ni dan el mismo resultado:
El elemento frameset
reemplaza el elemento del cuerpo en las páginas como un medio para incluir un modelo de documento diferente para las páginas web: son malos para la usabilidad y accesibilidad, y lo que pretendían lograr fue reemplazado por completo por CSS y desarrollo ubicuo del lado del servidor.
El elemento iframe
, 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 que se necesita para incluir un contexto de navegación integrado (los widgets son el ejemplo más prolífico). / li>
El iframe
en HTML5 también tiene características adicionales, ya que puede ser sandboxed , permitiendo que el documento principal 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 elemento object
se superpone un poco al elemento iframe
, pero tiene un modelo de contenido diferente (destinado principalmente a complementos), tiene su propio conjunto de advertencias, y no tiene los atributos de espacio aislado que tiene el elemento iframe
.
Los marcos (frameset) actúan como documentos. Se elimina porque rompe la estructura de documentos HTML y la navegación. P.ej. tiene enlaces en un cuadro, 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, iframes no romperá nada si se usa correctamente porque están destinados a contenido de espacio aislado (por ejemplo, anuncios).
Los conjuntos de marcos se utilizan a menudo de manera que rompen el principio fundamental de la web, que cada documento tiene una única URL. Esto conduce 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, de modo que cuando encuentre alguna página en google, le gustaría directamente a la página de contenido sin el conjunto de marcos, por lo que pierde la navegación. El problema con los enlaces y marcadores es que normalmente desearía vincular o marcar una página de contenido particular dentro del conjunto de marcos, sin perder el conjunto de marcos. 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 permitían un encabezado y un menú de posición estática con un área de contenido de desplazamiento. Pero eso se puede lograr mucho más fácil 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 el que la codificación del lado del servidor era tediosa y propensa a errores (¡scripts cgi!), Y muchos hosts no permitían en absoluto las secuencias de comandos del servidor. Hoy en día, con CMS y mejores plataformas de servidor, esto se maneja mucho mejor en el servidor.
Básicamente, no hay ventajas para el conjunto de marcos, sino muchos problemas.
IFrames puede usarse de la misma manera que se usaron los framesets, y en ese caso también llevan a los mismos problemas. Pero también hay muchos usos legítimos de los iframes que no llevan a los mismos problemas.
Lea otras preguntas en las etiquetas html5