externa - ¿Están IFrames(HTML) obsoletos?
iframe url externa (14)
Recibiendo mensajes contradictorios sobre eso, espero que no lo sean. No me puedo imaginar apoyo para que se detenga, ya que un montón de sitios los usan.
Algunas preguntas adicionales sobre eso:
- ¿Por qué deberían eliminar esta etiqueta?
- ¿Alguna alternativa para eso?
Acabo de cambiar un sitio de un Frameset normal a Iframes porque los marcos normales no podían hacer lo que necesitaba. No causó problemas con el resto de la base de código.
Caballos para cursos ... <iframe> s son como cualquier otra cosa ... para el propósito correcto son la herramienta correcta; para el propósito equivocado, son un hack feo, o algo peor.
En Ajax, <div> s son a menudo el contenedor más apropiado. En algunos lugares, la actividad de transmitir contenido externo como parte de su propio sitio, tal como lo admite <iframe> s, es inapropiada.
Mi equipo utilizó un <iframe> el otro día como una forma ideal de dar acceso a los usuarios a su historial de correo electrónico HTML: los correos electrónicos eran páginas <html> completas que queríamos insertar fácilmente en nuestra plantilla web. <iframe> s fueron absolutamente perfectos para presentar esos datos] ''.
Por otro lado, <iframe> s casi siempre debe eliminarse o inhabilitarse en cualquier contenido enviado por el usuario que se devuelva al sitio, porque en ese contexto constituyen un problema de seguridad importante.
El soporte para <iframe>
todavía está allí en HTML 5, por lo que no creo que esto cambie en el futuro cercano.
Para responder a tus otras preguntas:
-
<iframe>
s (como marcos en general) la mayoría de las veces no son fáciles de usar:- No permiten el acceso fácil del contenido en el marco a través de una URL (sin perder el contenido al menos fuera del marco).
- La mayoría de los usuarios "tecnófobos" están irritados por los marcos.
- Hasta donde yo sé, son más lentos para renderizar para los navegadores
- Las alternativas incluyen la generación dinámica de páginas (SSI, PHP, Rails, etc.) y el uso de JavaScript / AJAX para cambiar el contenido de, por ejemplo, un
<div>
Para ser claros: estoy hablando de <iframe>
como un elemento de interfaz. No es un elemento oculto para cargar otras cosas como, por ejemplo, Google Mail sí.
En mi empresa anterior, proporcionamos una aplicación alojada que los clientes integrarían en sus propios sitios web. A veces, usarían un IFrame para hacer esto, ajustando nuestra página alojada en sus diseños existentes. A veces esto incluso se hizo sin problemas (es decir, el IFrame no tenía bordes ni barras de desplazamiento, simplemente parecía parte de la página). Considere que este es un buen uso de la etiqueta.
He visto muchos foros que sugieren la etiqueta Object como reemplazo de IFrame, que probablemente funcione en la mayoría de los casos.
Por ejemplo, tenía un PDF que se muestra en un IFrame (porque había otras cosas que debemos mostrar en la página además del PDF) y pudimos mostrarlo bien usando Object.
Lo que era:
<iframe id="confirmed_pdf" class="current_pdf" src="/prescriptions/show_pdf?id=123" height="570" width="480"></iframe>
Convirtió:
<object id="confirmed_pdf" class="current_pdf" data="/prescriptions/show_pdf?id=123" type="application/pdf" height="570" width="480">
<p>[Show this message if displaying the PDF did not work]</p>
</object>
Pero Object no era un reemplazo adecuado para cumplir con el requisito de poder imprimir SOLAMENTE la porción de PDF de la página.
Un IFrame es como su propia ventana dentro de la página (una ventana dentro de una ventana, básicamente), y una vez que obtienes el objeto de la ventana, puedes llamar a .print (), como:
jQuery("#confirmed_pdf").contentWindow.print();
IFrame tiene una propiedad contentWindow, eso es lo que hace que imprimir solo esa parte sea posible. Object no tiene una propiedad contentWindow, por lo que no hay forma de imprimir solo la sección de la página.
Entonces, parece que si solo está usando IFrame para mostrar algo, existen otras etiquetas como Object que se pueden usar en su lugar. Pero si necesita interactuar con los contenidos del IFrame de ciertas maneras, entonces IFrame puede ser necesario.
IFrames no son obsoletos, pero las razones para usarlos son raras.
- Usar IFrames para servir su propio contenido crea un "muro" alrededor del acceso al contenido en esa área.
- Para rastreadores como Google, no está claro de inmediato que el cártel en un iframe se clasificará tan alto como si el contenido fuera simplemente parte de la página. Para muchos, esta es razón suficiente para no usarlo.
- Hace que el DOM para el IFrame sea menos accesible mediante herramientas como jQuery, prototipo, etc.
Razones para usar iframes:
- Es genial para aislar las cosas de otras personas de otros dominios, pero no se integra sin problemas. (hojas de estilo, Javascript, etc.)
- La integración de multimedia a veces se puede hacer más fácilmente a través de un iframe en lugar de usar la etiqueta de inserción.
- Realmente, casos realmente especializados como el caso de gmail donde lo están usando para sonidos y administración de historia.
También respondería que no es necesario eliminar los iframes, es una etiqueta necesaria y estará disponible por un tiempo.
IFrames se usan mucho con AJAX. GMail, por ejemplo, usa nueve IFrames ocultos, creo.
La especificación del gadget de google actualmente se basa en iframes: http://code.google.com/apis/gadgets/docs/spec.html
Actualmente, son la única forma simple de proporcionar aislamiento para las aplicaciones de JavaScript que se extraen de múltiples dominios / proveedores.
Además, muchos de los widgets que las personas incorporan en sus sitios web a terceros usan iframes.
Si bien tienen sus inconvenientes, los iframes proporcionan una solución pragmática para problemas comunes en la web. Tendría que adivinar que estarán disponibles por algún tiempo.
Los marcos flotantes están obsoletos para el diseño de la página. Nunca los use en lugar de un buen diseño CSS, incluso el diseño basado en tablas es mejor.
Las buenas razones para usar iframes son:
- anuncios : adwords, por ejemplo, usa esta técnica, es bueno para encapsular, ad css no destruirá su página.
- iframe escondido : se puede usar para cientos de cosas utilizables, como tracking, ajax-alternative, etc.
Los problemas de cumplimiento y seguridad también pueden llevarlo a utilizar Iframes; Los carritos de compras son implementaciones populares basadas en IFrame cuando desea incorporar visualmente un carrito de compras como parte de algunas páginas web sin asumir la responsabilidad total del procesamiento de pagos.
Comúnmente, ofrecemos un iframe para integrar nuestros productos y clientes de comercio electrónico, por ejemplo, lo llave en mano que puede ser.
Pueden ser extremadamente útiles en algunas circunstancias, pero son limitadas. En particular, incorporando funcionalidad común en múltiples sitios.
Por ejemplo, tengo un cliente que ejecuta varios sitios de comercio electrónico de productos escoceses. Como parte de esto, hemos desarrollado un par de aplicaciones simples para localizar posibles nombres de clanes de su apellido o de su elección de tartanes (ríete si lo deseas, pero los tartanes valen $ 700 millones al año para nuestra economía). La base de datos detrás de esto es sorprendentemente grande (casi diez mil filas en las tablas de nombres básicos y tartanes) y regularmente actualizada.
Así que tenemos las aplicaciones configuradas para ejecutarse en un sitio web y luego las incorporamos a nuestros otros sitios web utilizando un iframe, lo que permite pasar parámetros JavaScript simples para que podamos integrar la selección de un tartán o clan con funcionalidad en el sitio de inserción. El iframe está configurado como no frontera, por lo que parece ser completamente transparente para el usuario final.
Por supuesto, habría otras formas de hacerlo, pero el uso de un iframe es simple y robusto. Y ciertamente no es obsoleto.
Trabajo para una empresa que usa marcos para todo, desde menús desplegables, listas, bloques de contenido, etc. solo para cubrir las complejidades de los formularios web .net. La aplicación es muy lenta y solo se ejecuta en IE. No hagas esto
IFrames no están muertos, pero Frameset / Frames están muriendo.
En las últimas 2 versiones de IE (IE7 / IE8), al hacer zoom en Frames (no en IFrames) se han creado resultados desastrosos.
Por supuesto, use IFrames, pero en mi humilde opinión permanezca alejado de Framesets / Frames.
En mi opinión, el W3C saltó al mercado al eliminar los iframes de los tipos estrictos HTML y XHTML doctypes. En teoría, usted usaría el elemento <object>
para agregar objetos extraños a su documento, pero las diferencias y limitaciones del navegador lo han convertido en un no arranque para muchos desarrolladores. Con el HTML 5 mucho más pragmático (que sigue siendo un borrador), los iframes vuelven e incluso tienen dos nuevos atributos: seamless
y el intrigante sandbox
.