Foros del Web » Programando para Internet » Javascript »

Detectar navegador Mozilla y mostrar capas en él

Estas en el tema de Detectar navegador Mozilla y mostrar capas en él en el foro de Javascript en Foros del Web. Hola a todos.- Dado que Mozilla empieza a imponerse he tomado la decisión de empezar a crear Sitios Webs que lo soporten y hoy mismo ...
  #1 (permalink)  
Antiguo 29/10/2005, 03:27
 
Fecha de Ingreso: marzo-2004
Mensajes: 174
Antigüedad: 20 años, 1 mes
Puntos: 1
Detectar navegador Mozilla y mostrar capas en él

Hola a todos.-

Dado que Mozilla empieza a imponerse he tomado la decisión de empezar a crear Sitios Webs que lo soporten y hoy mismo me he descargado el navegador y he hecho varias pruebas.

Pero no logro encontrar información acerca de como detectar mediante javascript el navegador Mozilla y que muestre/oculte capas.

Por ejemplo tengo lo siguiente para IE y Netscape.-

<html>
<head>
<script language="javascript">
var capa

ns4 = (document.layers)? true:false
ie4 = (document.all)? true:false

function init() {
if (ns4) {
capa = document.menu
}
if (ie4) {
capa = menu.style
}
}

function muestra(obj) {
if (ns4) obj.visibility = "show";
if (ie4) obj.visibility = "visible"
}

function oculta(obj) {
if (ns4) obj.visibility = "hide";
if (ie4) obj.visibility = "hidden";
}

</script>
</head>
<body onLoad="init()">
<div id="menu" style= "position:Absolute;left:50; top:60; background-color:#ff1133; visibility:hidden">hola</div>
<div id="CapaNormal" style= "position:absolute;left:50; top:150;background-color:pink;"><a href="#" OnMouseOver="muestra(capa)" OnMouseOut= "oculta(capa)">Ponte encima</a>...</div>
</body>
</html>

¿Qué debo añadir para controlar también al navegador Mozilla?

Desde ya muchas gracias.
  #2 (permalink)  
Antiguo 29/10/2005, 06:24
 
Fecha de Ingreso: octubre-2004
Ubicación: España
Mensajes: 894
Antigüedad: 19 años, 6 meses
Puntos: 3
Hola, Brewster
No deberías tener problema, los Gecko (Mozilla, Firefox, Netscape 7,...) usan las capas perfectamente. El problema es que hay muchas rutinas de detección de navegador (como la que estás usando) que sólo contemplan Netscape 4.x (a través de document.layers) e IE (a través de document.all)
Estas rutinas no están recomendadas por los expertos por esta razón, excluyen navegadores nuevos.
Como solución fácil, yo verificaría si es Ns4 y en caso contrario dejaría que se ejecuten las instrucciones de capas. En realidad, hay instrucciones que sólo IE entiende, pero no son muy habituales. En resumen:

Código:
<html>
<head>
<script language="javascript">
var capa

ns4 = (document.layers)? true:false
//ie4 = (document.all)? true:false

function init() {
if (ns4) {
capa = document.menu
}
else {
capa = menu.style
}
}

function muestra(obj) {
if (ns4) obj.visibility = "show";
else obj.visibility = "visible"
}

function oculta(obj) {
if (ns4) obj.visibility = "hide";
else obj.visibility = "hidden";
}

</script>
</head>
<body onLoad="init()">
<div id="menu" style= "position:Absolute;left:50; top:60; background-color:#ff1133; visibility:hidden">hola</div>
<div id="CapaNormal" style= "position:absolute;left:50; top:150;background-color:pink;"><a href="#" OnMouseOver="muestra(capa)" OnMouseOut= "oculta(capa)">Ponte encima</a>...</div>
</body>
</html>
Si, a pesar de todo, quieres detectar Mozilla y parientes, te recomiendo verificar la cadena "gecko" en el navigator.userAgent
pero puede que pierdas Opera.
__________________
Angel :cool:
  #3 (permalink)  
Antiguo 31/10/2005, 05:02
 
Fecha de Ingreso: marzo-2004
Mensajes: 174
Antigüedad: 20 años, 1 mes
Puntos: 1
Me funciona asi perfectamente, muchas gracias.

Otra consulta acerca de Mozilla, nada más entrar en mi Web tengo la siguiente instrucción.-

window.resizeTo(screen.AvailWidth, screen.AvailHeight);
window.moveTo(0,0);

Así consigo que la la pantalla del navegador se abra del todo para ver la Web pefectamente, ahora bien en Mozilla al ejecutarlo se minimiza totalmente la pantalla, ¿Cual es la instrucción que debería utilizar para este navegador?

Gracias
  #4 (permalink)  
Antiguo 31/10/2005, 05:20
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Hola Brewster

Tienes que tener cuidado con las mayúsculas y minúsculas:

window.resizeTo(screen.availWidth, screen.availHeight);

Saludos,
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:08.