С помощью jQuery, как временно перехватить события щелчка по гиперссылке? - PullRequest
10 голосов
/ 08 декабря 2010

Этот вопрос относится к аффилированному маркетингу, но на самом деле это общий вопрос о перехвате гиперссылок перед их переходом на другой сайт, где вы можете регистрировать активность посетителей в базе данных.

У моего клиента по аффилированному маркетингу был действительно хороший вопрос. Представьте себе сценарий, когда у вас есть продукты, отозванные из Amazon через его API, с заданным ключевым словом. Теперь представьте, что посетитель нажимает на один из этих продуктов, чтобы просмотреть его на Amazon. URL-адрес этого продукта может выглядеть следующим образом (и это только демонстрационная версия):

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

Но угадайте, что с этим не так? Это не передает это ключевое слово. Таким образом, мы не знаем, какие ключевые слова были наиболее эффективными. Вместо этого она хотела, чтобы мы могли передать следующее, а затем как-то отследить:

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

Я не видел никаких документов на Amazon, где мы могли бы передавать дополнительные параметры и затем отслеживать их в отчетах с помощью фильтра.

Итак, единственное, о чем я мог подумать, - это то, что нам нужно захватить клик, прежде чем он отправится в Amazon. Другими словами, до того, как это событие всплывет и будет выполнено, каким-то образом в jQuery я могу сначала его перехватить, проанализировать URL-адрес href для этой гиперссылки, добавить эту дополнительную ключевую информацию ключевого слова, отправить ее через AJAX обратно на страницу PHP и в базу данных. таблицы, а затем отпустите событие click, чтобы оно было выполнено и браузер вышел из Amazon.

Кто-нибудь знает, как это делается в jQuery? Я знаю часть AJAX - только не часть перехвата щелчка, которая захватывает щелчок, а затем освобождает его.

Ответы [ 2 ]

22 голосов
/ 08 декабря 2010

Вы можете привязать событие щелчка ко всем тегам привязки, например

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

Если вы хотите выполнить действие по умолчанию, поставьте return true; в конце этой функции.

3 голосов
/ 08 декабря 2010
var seed = "&seed=laptops";
$("a").live('click',function(){
    $(this).attr('href', $(this).attr('href')+seed);
});
...