Foros del Web » Programando para Internet » Javascript »

no se muestran capas en firefox

Estas en el tema de no se muestran capas en firefox en el foro de Javascript en Foros del Web. hola tengo un problema al ver mi sitio web con firefox. tengo unos botones q al pasar el raton sobre ellos despliegan una capa con ...
  #1 (permalink)  
Antiguo 08/08/2006, 04:16
 
Fecha de Ingreso: agosto-2006
Mensajes: 15
Antigüedad: 17 años, 9 meses
Puntos: 0
no se muestran capas en firefox

hola
tengo un problema al ver mi sitio web con firefox. tengo unos botones q al pasar el raton sobre ellos despliegan una capa con un submenu.
bueno, pues en IE y en Opera no hay ningun problema, pero en Firefox no se despliega ese submenu.
si alguien ha tenido ese problema antes y m puede ayudar
Gracias
  #2 (permalink)  
Antiguo 08/08/2006, 04:36
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 1 mes
Puntos: 1284
Hola moroborracho, bienvenido a los foros :

Seguramente el script use la colección all de explorer y que también la soporta opera.

Si es cosa de ese script, debes cambiar donde ponga document.all.lo_que_sea por document.getElementById("lo_que_sea")

De todos modos, es mejor que aportes más datos, porque así no tenemos que adivinar.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 08/08/2006, 04:43
 
Fecha de Ingreso: agosto-2006
Mensajes: 15
Antigüedad: 17 años, 9 meses
Puntos: 0
a ver,cuento algo mas.
la pagina no la he diseñado yo. estoy de practicas en una empresa, y me han mandado mantener y corregir la nueva página que han hecho. y ese es uno de los errores que me he encontrado. pongo un poco el codigo

en el theme.php está esto:

echo "<DIV STYLE=\"position:absolute; top:0px; z-index:10;\" aling=\"center\"> ";


include ("index_centro.php");
// sub-menu pagina (bajo cabecera)

echo "<table border=\"0\" bgcolor=\"$bgcolor3\" cellpadding=\"0\" cellspacing=\"0\" width=\"780\" align=\"center\">\n"
."<tr><td width=\"100%\">\n";

echo "<table width='100%' cellspacing='0' cellpadding='0' border='0'><tr><td>\n";


echo "<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"870\">\n"
."<tr align=\"right\">\n"
."<td>
<a href=\"#\" OnMouseOver=\"ocultacapas()\"><img src=\"images/centro/espacio.gif\" width=\"10\" height=\"30\" border=\"0\" ></a>
</td><td>
<a href=\"#\" OnMouseOver=\"muestra(capa3)\" ><img src=\"images/centro/b_comercio_interior.gif\" border=\"0\" ></a>
</td>\n"

."<td>
<a href=\"#\" OnMouseOver=\"ocultacapas()\"><img src=\"images/centro/espacio.gif\" width=\"10\" height=\"30\" border=\"0\" ></a>
</td><td>
<a href=\"#\" OnMouseOver=\"muestra(capa2)\"><img src=\"images/centro/b_comercio_exterior.gif\" border=\"0\" >
</a></td>\n"

."<td>
<a href=\"#\" OnMouseOver=\"ocultacapas()\"><img src=\"images/centro/espacio.gif\" width=\"10\" height=\"30\" border=\"0\" ></a>
</td><td>
<a href=\"#\" OnMouseOver=\"muestra(capa1)\" ><img src=\"images/centro/b_formacion.gif\" border=\"0\" ></a>
</a></td>\n"

."<td>
<a href=\"#\" OnMouseOver=\"ocultacapas()\"><img src=\"images/centro/espacio.gif\" width=\"10\" height=\"30\" border=\"0\" ></a>
</td><td>
<a href=\"#\" OnMouseOver=\"muestra(capa4)\" ><img src=\"images/centro/servicios.gif\" border=\"0\"></a>
</td>\n"
."</tr>\n"

."</tr>\n"
."</table>\n";

echo "</DIV> ";


al pasar el raton por cada uno de esos gifs, se muestra una capa con algunos enlaces. las capas estan definidas en el fichero que se incluye al principio (index_centro.php),q os indico a continuacion como es

<script language="javascript">
var capa

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

function init() {
if (ns4) {
capa1 = document.descripcion1
capa2 = document.descripcion2
capa3 = document.descripcion3
capa4 = document.descripcion4
capa5 = document.descripcion5
capa6 = document.descripcion6
capa7 = document.descripcion7
capa8 = document.descripcion8
capa9 = document.descripcion9
}
if (ie4) {
capa1 = descripcion1.style
capa2 = descripcion2.style
capa3 = descripcion3.style
capa4 = descripcion4.style
capa5 = descripcion5.style
capa6 = descripcion6.style
capa7 = descripcion7.style
capa8 = descripcion8.style
capa9 = descripcion9.style
}
}

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

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

a ver si así m podeis ayudar. gracias
  #4 (permalink)  
Antiguo 08/08/2006, 05:29
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 1 mes
Puntos: 1284
Hola:

En principio, creo que se puede considerar netscape 4.x como obsoleto, así que creo que puedes simplificar bastante el código, quitando la inicialización... o mejor, para no complicar mucho las cosas, cambiar la función init como pondré más abajo y modificando las funciones muestra y oculta así:

function init() {
capa1 = document.getElementById(descripcion1);
// las demás líneas modificarlas según la línea anterior
//...

}


function muestra(obj) {
obj.style.visibility = "visible";
}

function oculta(obj) {
obj.style.visibility = "hidden";
}

Pruébalo y nos cuentas...

Por cierto, voy a reportar el tema para que lo muevan a javascript, que pienso que es el lugar más adecuado.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #5 (permalink)  
Antiguo 08/08/2006, 05:45
 
Fecha de Ingreso: agosto-2006
Mensajes: 15
Antigüedad: 17 años, 9 meses
Puntos: 0
q va,sigue sin salir nada. he probado también a kitar los numeros en los nombres d las capas,q lei por algun lao q daba problemas, pero tampoco funciona.

acabo d probar,y ahora tampoco funciona en IE, así que puede que haya copiao algo mal. voy a revisarlo
  #6 (permalink)  
Antiguo 08/08/2006, 05:49
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 1 mes
Puntos: 1284
Hola:

Bueno, estoy viendo que no entrecomillé una cosa importante.
Edito:
function init() {
capa1 = document.getElementById("descripcion1");
// las demás líneas modificarlas según la línea anterior
//...

}

Y descripción1... deben ser los atributos id de las capas.

Espero que se trate de eso.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #7 (permalink)  
Antiguo 08/08/2006, 05:54
 
Fecha de Ingreso: agosto-2006
Mensajes: 15
Antigüedad: 17 años, 9 meses
Puntos: 0
viendo los errores que dice IE, todos estan en líneas que llaman a la función ocultacapas().

la función oculta capas es la siguente:

function ocultacapas() {
capa1.style.visibility = "hidden";
capa2.style.visibility = "hidden";
capa3.style.visibility = "hidden";
capa4.style.visibility = "hidden";
capa5.style.visibility = "hidden";
capa6.style.visibility = "hidden";
capa7.style.visibility = "hidden";
capa8.style.visibility = "hidden";
capa9.style.visibility = "hidden";
}

ves algo raro ahi?
  #8 (permalink)  
Antiguo 08/08/2006, 06:02
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 1 mes
Puntos: 1284
Hola:

Revisa mi mensaje anterior, que la inicialización sin el entrecomillado no vale.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #9 (permalink)  
Antiguo 08/08/2006, 06:05
 
Fecha de Ingreso: agosto-2006
Mensajes: 15
Antigüedad: 17 años, 9 meses
Puntos: 0
ya ya. eso ya lo he cambiado y sigue igual
  #10 (permalink)  
Antiguo 08/08/2006, 07:58
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 1 mes
Puntos: 1284
Hola:

Te preparé un ejemplo básico:

Código:
<html>
<head>
<script>
var capa1;
function inicio() {
capa1 = document.getElementById("capa");
}


function muestra(obj) {
obj.style.visibility = "visible";
}

function oculta(obj) {
obj.style.visibility = "hidden";
}

</script>
</head>
<body onload="inicio()" >
<div id="capa"><img src="../miemoticon.gif" /></div>
<span onmouseover="oculta(capa)" onmouseout="muestra(capa)" >mostrar/ocultar</span>
</body>
</html>
De todos modos en tu código he visto definido oculta y recién ahora veo ocultacapas... y no se ve la definición de las capas.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #11 (permalink)  
Antiguo 09/08/2006, 01:49
 
Fecha de Ingreso: agosto-2006
Mensajes: 15
Antigüedad: 17 años, 9 meses
Puntos: 0
mi codigo ya lo tengo casi identico al que me has puesto de ejemplo. lo que pasa que aparte de la funcion oculta, q oculta la capa q le indicas, hay otra definida, q se llama ocultacapas(), y q oculta todas las capas de la pagina. pues parece ser q esa es la q da problemas ahora, y no se xq. la funcion es la siguente:

function ocultacapas() {
capa1.style.visibility = "hidden";
capa2.style.visibility = "hidden";
capa3.style.visibility = "hidden";
capa4.style.visibility = "hidden";
capa5.style.visibility = "hidden";
capa6.style.visibility = "hidden";
capa7.style.visibility = "hidden";
capa8.style.visibility = "hidden";
capa9.style.visibility = "hidden";
}

en algunas sitios d la pagina, tengo puesto OnMouseOver=\"ocultacapas()\"

pues en todas las lineas dnd aparece ocultacapas() hay error (según IE)
IE dice que se esperaba un objeto.
  #12 (permalink)  
Antiguo 09/08/2006, 02:09
 
Fecha de Ingreso: agosto-2006
Mensajes: 15
Antigüedad: 17 años, 9 meses
Puntos: 0
caricatos, parece ser que ya funciona.
no encuentro una explicacion al xq,xo funcionar funciona.
volvi al codigo q tenia, el primero q t puse, y lo que hice fue kitar los if que miraban si era NS4 o IE y ahora si funciona.
salen un poco desplazadas de donde deberian, pero ahora me pondre con eso.
muchas gracias por tu ayuda
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 04:33.