Para no dejar a nadiea afuera, lo mejor es crear una página con dos marcos (frames). Un marco va a ocupar la totalidad de la pantalla, mientras que el otro no va a ocupar ni un solo píxel. Es nuestro espía. Nuestro marco invisible.
Dentro de él vamos a colocar el detecta explorador (la función checkVersion) y unas líneas de script que decidan qué se va a mostrar en el marco visible. Tenemos que crear (eso sí, es más trabajo) dos versiones de la página: una con todos los chiches que aprendimos, y otra con html plano. Podemos crear, por ejemplo, una página estructurada con hojas de estilo (como vimos en la tercera entrega), y otra página estructurada con tablas, que pueda entender cualquier explorador. El marco invisible va a detectar el explorador del usuario, y va a decidir qué documento llamar para mostrar en el marco visible (el documento versión deluxe, o el standard para exploradores poco inteligentes).
El usuario nunca se entera de la existencia de dos versiones de la misma página. Simplemente va a ver la versión que le corresponda de acuerdo al explorador que use.
El código del frameset que contiene a los dos marcos es el siguiente:
<html>
<frameset cols="100%" rows="0,*" frameborder=0>
<frame name="espia" src="marcoinvisible.htm" scrolling="no" marginheight=0 marginwidth=0 noresize>
<frame name="marcovisible" src="enblanco.htm" scrolling="auto">
</frameset>
</html>
Primero se arma la estructura de dos marcos, uno visible y otro invisible. El marco visible, que llamamos "marcovisible", llama a un documento en blanco (un documento html sin ningún contenido) , porque lo que queremos es no mostrar nada hasta que el script del marco invisible averigüe qué explorador tiene el usuario, y tome la decisión correspondiente. En el marco invisible, que llamamos espía, cargamos el documento marcoinvisible.htm
El código de marcoinvisible.htm es:
<html>
<head>
<script>
function checkVersion() {
var queVsas, ieVersion;
queUsas = window.navigator.userAgent;
ieVersion = queUsas.indexOf("MSIE");
if (ieVersion > 0)
//Internet Explorer
return parseInt(queUsas.substring(ieVersion+5, queUsas.indexOf(".", ieVersion)));
else
return 0;
}
function cambiarMarcos() {
if (checkVersion() < 4)
parent.frames.item(1).location.href = "1.htm";
else
parent.marcovisible.location.href = "2.htm";
}
</script>
</head>
<body onload="cambiarMarcos()">
</body>
</html>
La primera función ya la conocen, es la checkVersion que les dije que guardaran porque les iba a ser muy útil. La segunda función llamada cambiarMarcos es un conjunto de scripts que traducidos al español dirían lo siguiente: "si (if) el explorador no es el IE 4.0 o superior, llamar al documento 1.htm; en caso contrario (else) llamar al documento 2.htm . Después, en el body, se llama la función cambiarMarcos en el evento onload (o sea apenas se carga la página). Este documento va a decidir si llamar a 1.htm o 2.htm.
Ahora solo tenemos que fabricar las dos versiones de la página que queremos mostrar.
Hagan clic aquí para ver el ejemplo.
Próxima página » 1. El viejo truco de los comentarios
| Los mensajes publicados
por los usuarios no sufren revisión ortográfica o de redacción
alguna. Ver reglamento de aprobación. |
| Mensajes publicados en esta nota: 0 |
| |
 |