Запустить скрипт на клике? - PullRequest
1 голос
/ 20 апреля 2011

Скажите, что у меня есть URL:

<a href="hello.html" id="4298">hello</a>

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

Моя страница называется track.php, которая извлекает идентификатор 4298 через GET, track.php?id=4298 и затем обновляет базу данных соответственно.

Как мне написать код в javascript / ajax, чтобы при нажатии на эту ссылку в виде "onclick event" этот track.php запускался за сценой?

Ответы [ 3 ]

1 голос
/ 20 апреля 2011

Помните, что для выполнения запроса в фоновом режиме вам нужно будет дождаться ответа AJAX, который последует за щелчком. Если это то, что вы хотите, то с помощью jQuery:

<script type="text/javascript">
var track = function(obj) {
  $.ajax({
    url: "track.php?id="+obj.id,
    success: function(){
      window.location.href = obj.href;
    }
  });
  return false;
};
$('a').click(track);
</script>
0 голосов
/ 20 апреля 2011
<script>
    window.doTheThing = function() {
        //send a request to your 'track.php' URL here 
    };
</script>

<a href="hello.html" id="4298" onclick="doTheThing(); return false;">hello</a>
0 голосов
/ 20 апреля 2011
var anchors = document.body.getElementsByTagName('a');

for (var i = 0, anchorsLength = anchors.length; i < anchorsLength; i++) {

   a.onclick = function(event) {

       event.preventDefault();
       var id = this.id,
           xhr = new XMLHttpRequest();

       xhr.open('track.php?id=' + id);

       xhr.onreadystatechange = function () {
          if (xhr.readyState == 4) {
             if(xhr.status == 200) {
                 window.location = this.href;
             }
          }
       }  
       xhr.send();  
   }
}

Имейте в виду, что XMLHttpRequest() не поддерживает более старые версии IE.

Если вы используете jQuery, используйте функции библиотеки AJAX.

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