Ver Mensaje Individual
  #5 (permalink)  
Antiguo 15/02/2010, 16:19
Avatar de zerokilled
zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años, 9 meses
Puntos: 1485
Respuesta: Aplicar función javascript para todos los enlaces

@alor86,
queria comentar que en tu ejemplo todos los enlaces abren siempre el mismo documento, 'pagina.html'. en lugar de un string literal deberia leer la propiedad href de dicho enlace. una forma es con this.href.

@adhemo,
opino que tienes un problema mayor para implementar dicha funcionalidad: identificar que enlaces son de la interfaz de tu sitio y cuales no. dependiendo a que exactamente te refieres, si aplicar la funcionalidad absolutamente a todos los enlaces de la interfaz o si solo a una parte de la interfaz (menu y alguna otra seccion), pues tienes diferentes formas de enfocarse. el ejemplo de alor86 aplica la funcion a todos los enlaces sin excepcion alguna. si te funciona, pues bien. sino, yo lo haria de la siguiente forma.

primero, aplicar la funcion enlace por enlace no me parece optimo. podemos sacarle ventaja al modelo de eventos para aplicar de una sola vez la funcion a todo el documento o seccion en particular. y segundo, con funciones basicas de busqueda se podria determinar si el enlace apunta a tu sitio o uno externo, y bajo esta condicion se invoca tu funcion AJAX.

Código:
// direccion del sitio web;
var site_address = 'http://www.forosdelweb.com/';

// funcion que determina si el enlace es local e invoca AJAX;
function localLink(evt){
var link = evt.target || evt.srcElement;
if(/^a$/i.test(link.nodeName) && (new RegExp('^' + site_address)).test(link.href)){ 
llamarasincrono(link.href, 'barent');
try{
evt.preventDefault();
}catch(error){
evt.returnValue = false;
}}}

// aqui se usa el objeto document para aplicar el evento a todo el documento;
// pero tambien puede ser a uno o varios elementos de tu preferencia;
try{
document.addEventListener('click', localLink, false);
}catch(e){
document.attachEvent('onclick', localLink);
}
no he comprobado el codigo pero estoy casi seguro que debe funcionar.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.

Última edición por zerokilled; 15/02/2010 a las 16:35