2010-12-08 26 views
9

To pytanie dotyczy marketingu afiliacyjnego, ale tak naprawdę jest to ogólne pytanie dotyczące przechwytywania hiperłączy przed wyruszeniem na inną stronę, na której można rejestrować aktywność odwiedzających do bazy danych.W jQuery: Jak przechwycić hiperłącze Kliknij zdarzenie tymczasowo?

Mój klient affiliate marketing miał naprawdę dobre pytanie. Wyobraź sobie scenariusz, w którym masz produkty wycofane z Amazon przez API, z uwzględnieniem słowa kluczowego seed. Teraz wyobraź sobie, że użytkownik kliknie jeden z tych produktów, aby wyświetlić go na Amazon. URL dla tego produktu może wyglądać tak (i ​​to tylko demo):

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

Ale domyślam się, co w tym złego? Nie przekazuje tego słowa kluczowego seed. Nie mamy pojęcia, które słowa kluczowe z nasion były najskuteczniejsze. Zamiast tego, była chcąc moglibyśmy przekazać następujące a następnie śledzić, że w jakiś sposób:

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

nie widzę żadnych docs na Amazon, gdzie moglibyśmy przekazać dodatkowe params a następnie zapisuje je w raportach przez filtr .

Jedyne, co mogłem wymyślić to to, że musimy przechwycić kliknięcie, zanim przejdzie do Amazon. Innymi słowy, zanim to zdarzenie zostanie zbuforowane i zostanie wykonane, jakoś w jQuery mogę je najpierw przechwycić, przeanalizować URL href dla tego hiperłącza, przywiązać do tej dodatkowej informacji o słowie kluczowym, wysłać ją przez AJAX z powrotem do strony PHP i bazy danych tabeli, a następnie zwolnij to zdarzenie kliknięcia, aby zostało wykonane, a przeglądarka przejdzie do Amazon.

Czy ktoś wie, jak to zrobić w jQuery? Znam część AJAX - nie tylko część przechwytująca kliknięcie, która przechwytuje kliknięcie, a następnie ją zwalnia.

Odpowiedz

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

Można powiązać zdarzenie click wszystkich tagów kotwicy, jak

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

Jeśli chcesz zrobić domyślna akcja następnie umieścić return true; na końcu tej funkcji.

+0

Bingo! Dokładnie tego potrzebowałem. Nie miałem pojęcia, że ​​to możliwe - dziękuję bardzo! :) Testowałem z IE7 +, Operą (najnowszą), Chrome (najnowszą), FF (najnowszą) i Safari/Windows (najnowszą) i to działa. Dodałem tylko "var u = $ (this) .attr ('href');" dzięki czemu wiem, który URL został kliknięty. – Volomike

+3

Doskonała i zwięzła odpowiedź. Jako aktualizację, w późniejszych wersjach jQuery, bardziej odpowiednim sposobem byłoby wywołanie '$ (" a "). On ('click', function() {...' – Trevor