Foros del Web » Programando para Internet » Javascript »

Obtener la url en el evento onclick

Estas en el tema de Obtener la url en el evento onclick en el foro de Javascript en Foros del Web. Muy buenas, He añadido un listener para capturar todos los metodos onClick. Lo que quiero es capturar la url a la que apunta un vinculo ...
  #1 (permalink)  
Antiguo 05/03/2010, 04:13
 
Fecha de Ingreso: septiembre-2009
Mensajes: 5
Antigüedad: 14 años, 7 meses
Puntos: 0
Obtener la url en el evento onclick

Muy buenas,
He añadido un listener para capturar todos los metodos onClick.

Lo que quiero es capturar la url a la que apunta un vinculo (href) cuando el usuario clique sobre él.

Funciona solo quando clico en vinculos del tipo <a href=...>vinculo</a>

El problema vinene quando tengo un vinculo con un tag dentro del tag <a>.
pej: <a href="patata.html"><b>patata</b></a>
En tal caso me captura el tag <b> , i no consigo obtener la url a la que ha clicado el usuario (patata.html)

Si a alguien se le ocurre como obtener la url a la que ha clicado un usuario con este o algun otro metodo que no pase por tener que añadir un listener a cada tag <a> le estaria muy agradecido.


Os muestro a continuación el codigo usado para capturar el evento y mostrar la url en Firefox:
Código:
window.document.addEventListener('click', function(e){
 	 var evt=window.event || e;
	alert(evt.target.href);
	evt.preventDefault();
	return false;
}, false);
muchas gracias

Última edición por kanetsura; 05/03/2010 a las 07:10
  #2 (permalink)  
Antiguo 05/03/2010, 06:22
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 8 meses
Puntos: 1532
Respuesta: Obtener la url en el evento onclick

te falta corregir la compatibilidad entre navegadores:

Código Javascript:
Ver original
  1. window.document.addEventListener('click', function(e){
  2.      var evt=window.event || e;
  3.     var targ;
  4.     if (evt.target) targ = evt.target;
  5.     else if (evt.srcElement) targ = evt.srcElement;
  6.     if (targ.nodeType == 3) // defeat Safari bug
  7.         targ = targ.parentNode;    
  8.     alert(targ.href);
  9.     evt.preventDefault();
  10.     return false;
  11. }, false);
  #3 (permalink)  
Antiguo 05/03/2010, 06:52
 
Fecha de Ingreso: septiembre-2009
Mensajes: 5
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: Obtener la url en el evento onclick

oks, gracias pero por eso decia que el codigo era para mostrar la url en Firefox.
Quiero primero solucionar-lo en firefox , y luego extrapolarlo con el resto.

Y dicho esto, el codigo no funciona correctamente en firefox.

funcionaria con un codigo del tipo:
Código:
<a href="http://google.com">Link a Google</a>
pero no con un codigo con algun otro tag dentro del tag a
Código:
<a href="http://google.com"><b>Link a Google</b></a>
O almenos, no me funciona a mi.
  #4 (permalink)  
Antiguo 05/03/2010, 09:52
 
Fecha de Ingreso: septiembre-2009
Mensajes: 5
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: Obtener la url en el evento onclick

Saludos de nuevo,

De momento lo he solucionado aunque de una manera que no me gusta mucho.
Lo que hago és obtener el elemento clicado e ir subiendo por sus padres hasta que exista un elemento con href . Poniendo un tope de 5 padres (creo que encontrar más de 5 tags dentro un link es improvable)

No me gusta porque es una operacion que se llevará a cabo siempre que se haga un click, pero hasta que no pueda apurar más, me servirá.

Código:
window.document.addEventListener('click', function(e){
 	var evt=window.event || e;
	//previeno cualquuier accion asociada con el click
	evt.preventDefault();
	
	//obtengo el elemento seleccionado
	var elem = evt.target;
	
	//busco si tiene algun padre con href (miro un maximo de 5 padres)
	for(var k=0; k < 5 && !elem.href; k++){
		elem = elem.parentNode;
	}	
	
	//muestro el link
	alert(elem.href);
	
	return false;
}, false);
  #5 (permalink)  
Antiguo 05/03/2010, 10:21
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Obtener la url en el evento onclick

Revisa este tema:
http://www.forosdelweb.com/f13/quien...2/#post2565328

Saludos.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #6 (permalink)  
Antiguo 13/04/2015, 14:24
 
Fecha de Ingreso: abril-2015
Mensajes: 1
Antigüedad: 9 años
Puntos: 0
Respuesta: Obtener la url en el evento onclick

Cita:
Iniciado por kanetsura Ver Mensaje
Saludos de nuevo,

De momento lo he solucionado aunque de una manera que no me gusta mucho.
Lo que hago és obtener el elemento clicado e ir subiendo por sus padres hasta que exista un elemento con href . Poniendo un tope de 5 padres (creo que encontrar más de 5 tags dentro un link es improvable)

No me gusta porque es una operacion que se llevará a cabo siempre que se haga un click, pero hasta que no pueda apurar más, me servirá.

Código:
window.document.addEventListener('click', function(e){
 	var evt=window.event || e;
	//previeno cualquuier accion asociada con el click
	evt.preventDefault();
	
	//obtengo el elemento seleccionado
	var elem = evt.target;
	
	//busco si tiene algun padre con href (miro un maximo de 5 padres)
	for(var k=0; k < 5 && !elem.href; k++){
		elem = elem.parentNode;
	}	
	
	//muestro el link
	alert(elem.href);
	
	return false;
}, false);

Me salvaste la vida, MUCHAS GRACIAS!!! ENSERIO =)

Etiquetas: onclick, url, eventos
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 12:20.