Как обрабатывать каждую ссылку, нажав на страницу в JS или JQuery? - PullRequest
1 голос
/ 09 марта 2012

Люди создают свои собственные сайты, используя WYSIWYG Creator, который я им предоставляю.Эти сайты имеют ссылки внутри них.Также они могут изучать HTML-код веб-сайта и размещать там свои собственные ссылки.

Теперь я хотел бы обрабатывать каждый щелчок по ссылке, возникающий на веб-сайте, созданном моим создателем, и регистрировать его на моем сервере.Я знаю, как передать данные из JS или jQuery на сервер PHP.Но мне нужно знать, как справиться с моментом, когда человек нажимает на ссылку, отложить перенаправление на некоторое время, и в это время получить URL-адрес и заголовок этой ссылки и отправить на мой сервер PHP.

Так, как обработать каждый щелчок ссылки (или изменение местоположения) на веб-сайте, структура которого я не знаю, и получить ссылку и название ссылки?

Ответы [ 5 ]

4 голосов
/ 09 марта 2012
$('a').click(function(e) {
    e.preventDefault();
    var href = $(this).attr('href');
    var title = $(this).attr('title');

    // Send your data to php
    if ($(this).attr('target') === '_blank') {
        window.location.href = href;  // redirect to href
    } else {
        window.open(href);
    }
});
2 голосов
/ 09 марта 2012
jQuery("a").click(function(){  
  var href = $(this).attr('href');
  $.post('/', {link: href}).then(function(){ document.location = href; });
  return false;
});

просто попытка

1 голос
/ 09 марта 2012

Чтобы перехватить каждую ссылку, просто поместите эту функцию где-нибудь, к которой имеет доступ каждая страница (header / footer / etc.):

$('a').click(function(event) {
    event.preventDefault();//To prevent following the link

    //Your logic. attr('href') and attr('title')
});
0 голосов
/ 09 марта 2012

Почему вы хотите дождаться завершения регистрации для перенаправления.Пусть это будет асинхронный вызов, чтобы пользователю не нужно было ждать.Если вы хотите, чтобы страница вашего сервера находилась в другом домене, для решения междоменной проблемы ajax используйте тип данных jsonp.

$('a').click(function() {

   $.ajax({
     url:"yourwebsite/loggingpage.php?data="+$(this).attr("href"),
     dataType: 'jsonp' // Notice! JSONP <-- P (lowercase)         

  });

});

и в loggingpage.php вы можете прочитать данные запроса и войти вваше постоянное хранилище или где вы хотите.

0 голосов
/ 09 марта 2012

Вы можете использовать jQuery для этого. Используйте событие on и привяжите к событию click элемента a. Затем вы можете выполнить event.preventDefault(); свою логику, а затем продолжить как обычно, получив href от цели.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...