Foros del Web » Programando para Internet » Javascript »

Deselecionar map/area para FireFox

Estas en el tema de Deselecionar map/area para FireFox en el foro de Javascript en Foros del Web. Saludos a todos, Me gustaría saber si a alguno se le ocurre la manera de deseleccionar una area de un map asociada a una imagen ...
  #1 (permalink)  
Antiguo 09/05/2006, 02:14
Avatar de pituzo  
Fecha de Ingreso: octubre-2004
Ubicación: Malaga
Mensajes: 34
Antigüedad: 19 años, 6 meses
Puntos: 0
Pregunta Deselecionar map/area para FireFox

Saludos a todos,

Me gustaría saber si a alguno se le ocurre la manera de deseleccionar una area de un map asociada a una imagen mediante Javascript para FireFox (con IE funciona correctamente).

Código:
<IMG src="imagen.gif" name="imagen" usemap="#map1" border="0">
<map name="map1">
   <area shape="rect" coords="..." href="pagina.php" tabindex="-1"
    style="cursor:hand;" onClick="javascript:selecciona(...)"
    target="..." onFocus="this.blur()">
</map>
Forma parte de una barra de menú en la que al pulsar sobre un botón (imagen) éste queda seleccionado (otra imagen) y se carga la página deseada en otro frame. El problema es que queda también el marco de selección del <AREA>.

¿Ideas?

Gracias.
  #2 (permalink)  
Antiguo 09/05/2006, 02:26
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola:

En tu código sobra lo de cursor: hand (no vale en mozilla, y por el hecho de haber un enlace se pone solo...

el onclick es mejor ponerlo en minúsculas y lo de javascript: es una redundancia... los eventos no lo necesitan...

Sobre lo que pides falta que pongas el código para seleccionar (suponiendo que los puntos suspensivos sean cosas correctas...)

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 09/05/2006, 02:59
Avatar de pituzo  
Fecha de Ingreso: octubre-2004
Ubicación: Malaga
Mensajes: 34
Antigüedad: 19 años, 6 meses
Puntos: 0
Gracias caricatos por la rápida respuesta.
Código:
onclick="selecciona(window.document.imagen1, '1')"

function selecciona(imagen, num) {
   if (seleccionado != num) {
      imgsel.src = soltado[seleccionado].src;
      imgsel = imagen;
      seleccionado = num;
      imagen.src = pulsado[num].src;
   }
}
El código es cutre pero al menos funciona (bueno, menos lo de la deselección, claro). Por si no se entiende decir que únicamente se selecciona el botón si no lo estaba ya y que lo que se hace es volver a dejar el botón que antes estaba marcado sin marcar y marcar el nuevo.
  #4 (permalink)  
Antiguo 09/05/2006, 03:14
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola:

¡Hey, he visto que eres de Málaga...! ¿Cómo estás, paisano... ?

Bueno, tal como llamas a la función, creo que no lo acepta mozilla...

window.document.imagen1... si imagen1 es el id, deberías referenciarla así:
document.getElementById("imagen1")...
y si se tratase del name:
document.images.imagen1
... aunque de las 2 formas funcionaría bien, es recomendable la primera

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #5 (permalink)  
Antiguo 09/05/2006, 03:34
Avatar de pituzo  
Fecha de Ingreso: octubre-2004
Ubicación: Malaga
Mensajes: 34
Antigüedad: 19 años, 6 meses
Puntos: 0
¡Saludos desde la Costa del Sol!

Si hago el cambio que me indicas (getElementById) deja de funcionar.

Ahora mismo todo funciona correctamente, el único problema es que el marco de selección se queda marcado aún cuando pulse otro botón (solo se quita si recargo la página). El marco al que me refiero es similar al que rodea a un enlace que acabas de pulsar. Supongo que el problema estará en que la orden this.blur() solo funciona en IE pero no sé su equivalente en Mozilla FireFox.
  #6 (permalink)  
Antiguo 09/05/2006, 04:13
Avatar de pituzo  
Fecha de Ingreso: octubre-2004
Ubicación: Malaga
Mensajes: 34
Antigüedad: 19 años, 6 meses
Puntos: 0
¡SOLUCIONADO!

Por si a alguno le interesa la solución ha estado en poner en el <AREA> en vez de this.blur() poner area1.blur(), donde area1 es la id del area. Osea:

Código:
<area id="area1" onfocus="area1.blur()" ...>
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 00:39.