2010-12-08 29 views
9

Esta pregunta se refiere al marketing de afiliados, pero en realidad es una pregunta genérica sobre la interceptación de hipervínculos antes de que se dirijan a otro sitio, donde puede registrar la actividad de los visitantes en una base de datos.Con jQuery, ¿cómo puedo interceptar hipervínculos Haga clic en eventos temporalmente?

Mi cliente de marketing de afiliación tenía una muy buena pregunta. Imagine un escenario en el que tenga productos retirados de Amazon por su API, dada una palabra clave de inicialización. Ahora imagine que un visitante hace clic en uno de esos productos para verlo en Amazon. La URL para ese producto podría tener este aspecto (y esto es sólo una demo):

http://www.amazon.com/dp/B0042RU3Y0/?tag=xxxxxxxxxxxxxxxx-20

Pero supongo que lo que es malo en ello? No está pasando esa palabra clave inicial. Por lo tanto, no tenemos idea de qué palabras clave de la semilla fueron las más efectivas. En cambio, estaba deseando poder pasar a la siguiente y luego realizar un seguimiento de que de alguna manera:

http://www.amazon.com/dp/B0042RU3Y0/?tag=xxxxxxxxxxxxxxxx-20&seed=laptops

Yo no vi ninguna documentación en Amazon donde podríamos pasar parametros adicionales y luego realizar un seguimiento de ellos en los informes de un filtro .

Por lo tanto, lo único que se me ocurre es que tenemos que capturar el clic antes de que se vaya a Amazon. En otras palabras, antes de que el evento salga a relucir y se ejecute, de alguna manera en jQuery puedo interceptarlo primero, analizar la URL href para ese hipervínculo, agregar esta información de palabra clave adicional, enviarla a AJAX a una página PHP y una base de datos tabla, y luego suelte ese clic para que se ejecute y el navegador se apague en Amazon.

¿Alguien sabe cómo se hace esto en jQuery? Conozco la parte de AJAX, pero no la parte de interceptar clic que capta el clic y luego la libera.

Respuesta

3
var seed = "&seed=laptops"; 
$("a").live('click',function(){ 
    $(this).attr('href', $(this).attr('href')+seed); 
}); 
20

puede enlazar un evento de clic a todas las etiquetas de anclaje, como

$("a").click(function(){ 
    // write your code 
}); 

Si usted quiere hacer la acción predeterminada a continuación, poner una return true; al final de esta función.

+0

Bingo! Esto es exactamente lo que necesitaba. No tenía idea de que esto fuera posible, ¡muchas gracias! :) Probé con IE7 +, Opera (último), Chrome (último), FF (último) y Safari/Windows (último) y funciona. Lo único adicional que agregué fue un "var u = $ (this) .attr ('href');" para que sepa en qué URL se hizo clic. – Volomike

+3

Respuesta excelente y concisa. Como una actualización, en versiones posteriores de jQuery, una forma más apropiada sería llamar a '$ (" a "). On ('click', function() {...' – Trevor

Cuestiones relacionadas