Ir directamente al contenido de esta página
object como alternativa a iframeSi nos paramos a mirar la lista de elementos que integran la especificación de XHTML 1.1, comprobamos que iframe ha desaparecido (inglés).
Los programadores de la vieja escuela se echarán las manos a la cabeza, pero no hay motivo de alarma: la alternativa estándar es emplear el elemento object.
objectEn la definición del elemento object de la especificación de HTML 4.01 (inglés), encontramos dos atributos que son exactamente los que necesitamos: data y type
Con respecto a data, la especificación dice:
This attribute may be used to specify the location of the object's data, for instance image data for objects defining images, or more generally, a serialized form of an object which can be used to recreate it. […]
[Este atributo puede utilizarse para especificar la localización de los datos del objeto, por ejemplo los datos de imagen para objetos que definan imágenes, o más generalmente, formas serializadas de un objeto que puedan ser empleadas para recrearlo.]
Y para type:
This attribute specifies the content type for the data specified by
data. […][Este atributo especifica el tipo de contenido para los datos especificados en
data.]
Simplificando, lo que la especificación nos dice es que los datos del objeto que se cargue dentro object no están —en principio— sometidos a ninguna restricción, siempre y cuando se especifique el tipo (MIME) de los mismos.
Bien, sabemos que el tipo MIME de un documento HTML es text/html, así que probemos.
Para comprobar si ésta es una alternativa viable, he creado una página de prueba en la que el usuario puede introducir un término a buscar. Al enviar la información, el servidor devuelve la misma página con el añadido de dos elementos object en los que cargo las páginas de resultados hallados en Google y Yahoo!
El código no tiene ningún misterio:
<div class="resultado">
<object type="text/html" width="100%" height="300" id="resultados_google" data="la_URL_compuesta_para_Google_con_el_término_a_buscar">
<p>Si puede leer este mensaje es que su navegador no soporta correctamente el elemento <code>object</code></p>
</object>
</div>
<div class="resultado">
<object type="text/html" width="100%" height="300" id="resultados_yahoo" data="la_URL_compuesta_para_Yahoo_con_el_término_a_buscar">
<p>Si puede leer este mensaje es que su navegador no soporta correctamente el elemento <code>object</code></p>
</object>
</div>
Para la página de prueba he especificado la DTD XHTML 1.1. Sin embargo, lo relevante es si el navegador soporta correctamente object, por lo que se podría aplicar igualmente para un documento XHTML 1.0 Estricto, XHTML 1.0 Transicional, HTML 4.01 Estricto e incluso en quirks mode. Así pues, veámos qué pasa con los navegadores.
Ésta es la prueba de fuego, y el resultado es éste:
| Explorer 6 | Explorer 7 | Firefox 2.0 | Netscape 8 | Opera 9 | Safari 3 BETA |
|---|---|---|---|---|---|
| Sí, pero… | Sí, pero… | Sí | Sí | Sí | No |
Sí, en Explorer funciona… bajo ciertas condiciones, por las políticas de seguridad relacionadas con los componentes ActiveX, que es como interpreta los contenidos de iframe:
object.En el caso de Safari 3, sólo he puedo comprobar la versión de Windows, pero si alguien puede darme más información, le estaré muy agradecido.