El problema
Quien haya intentado construir páginas dinámicas sabrá que el explorador de Microsoft maneja las páginas de forma muy diferente a como lo hace el explorador de Netscape. Pese a que las últimas versiones de ambos navegadores se acercan bastante a un cierto standard (el definido por la W3C), aún es necesario escribir los scripts previendo las diferencias entre ambos navegadores. La construcción de estos programa exige diferenciar entre ambos. He aquí un método de lo más sencillo para realizar esa discriminación, cuando tan sólo es necesario diferenciar el tipo de navegador sin detallar las posibles versiones

La solución

Scripts para detectar el navegador usado por el visitante a una página existen muchos. En esta misma web tienes un objeto oNavegador que resuelve este asunto de manera bastante completa. Pero existe un método muy simple para detectar el navegador usado, método basado en los objetos que si existen para un navegador y no existen para otro. El objeto más simple es la colección document.all, que es exclusiva del explorador de Microsoft. Para discriminar entre ambos navegadores basta con una línea como la sigiente:

if (document.all)
     alert("Estas usando un navegador de Microsoft")
else
     alert("No estas usando un navegador de Microsoft")

También podrí usarse document.layers, pero este objeto ha desaparecido en el Netscape 6 por lo que no es aconsejable su uso.


Un caso práctico

Con el ejemplo del apartado anterior puede bastar para ver como aplicar este truco, no obstante he aquí otro ejemlo más completo que carga un script u otro según el navegador usado.

<script language="Javascript">
if (document.all)
     document.write('<script laguage="Javascript" src = "codigoie.js"></'+'script>'
else
     document.write('<script laguage="Javascript" src = "codigons.js"></'+'script>'
</script>

Nota: no trates de simplificar la cadena, la etiqueta </script> dentro del document.write no puede aparecer completa sino partida, en caso contrario el navegador la interpretaría como final del script con resultados catastróficos.