![Antiguo](http://static.forosdelweb.com/fdwtheme/images/statusicon/post_old.gif)
26/11/2003, 17:40
|
![Avatar de sci-fi](http://static.forosdelweb.com/customavatars/avatar17446_1.gif) | | | Fecha de Ingreso: marzo-2002
Mensajes: 157
Antigüedad: 22 años, 11 meses Puntos: 0 | |
hola,
te conviene usar "detección de objetos" en lugar de obtener la cadena de identificación del navegador, la que es engorrosa y muy poco compatible, además de que en Opera (también en Konqueror de Linux, y en navegadores para la Mac también como el OmniWeb) te engaña porque estos browsers se pueden identificar como ellos quieran simplemente cambiando esta string, a la misma que usan cualquiera de las versiones de IE, u otros.
La detección de objetos es así: en lugar de usar el appName bla bla, chequeás que esté disponible un objeto, por ej:
if (document.getElementById) {
document.getElementById('ID').style.visibility = 'visible';
}
Esto :
- no "discrimina" a los navegadores (de hecho Opera y otros se "disfrazan" justamente para no ser "discriminados", algo que copiaron del navegador dominante hoy el IE, el que en los tiempos en que Mozilla y Netscape eran los dominantes, incluía la palabra "Mozilla" en su identificación, la que hasta ahora se mantiene, justamente para disfrazarse y eludir chequeos)
- evita fastidiosos mensajes de error en el IE y errores javascript en todos los navegadores. Si para el ejemplo de arriba el navegador no incluye soporte para getElementById(), sencillamente no ejecuta el código que sigue
La cuestión de la visibilidad de los layers es porque, para que un layer sea visible, la propiedad style.visibility debe ser 'visible', y para que esté oculto, debe ser 'hidden':
document.getElementById('LayerID').style.visibilit y = 'visible';
document.getElementById('LayerID').style.visibilit y = 'hidden';
saludos |