Создание функции Jquery против проблемы с библиотекой - PullRequest
0 голосов
/ 21 июля 2010

У меня есть код, который опирается на jquery, который работает здесь:

    $(function() {  


 var referrer = document.referrer;
    var dataText = 'client='+client+'&referrer=';
   dataText = dataText + referrer;

    // Create the AJAX request  
    $.ajax({  
        type: "GET",                   
        url: "http://www.myurl.com/project/thecollector.php",            
        data: dataText,                  
        success: function() {            
            $('#complete').html( 'Your page view has been added!' );  
        }  
    });  
});

Я переписал код, чтобы не нуждаться в jquery здесь:

window.addEventListener('domready', function()
{
 var referrer = document.referrer; 
    var dataText = 'client='+client+'&referrer=';  
   dataText = dataText + referrer;

 if (window.XMLHttpRequest)        
 {
  // code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp = new XMLHttpRequest();       
 }
 else        
 {
  // code for IE6, IE5
  xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");        
 }
 var url = "http://www.myurl.com/project/thecollector.php?"+dataText;        
 xmlhttp.open("GET",url,false);        
 xmlhttp.send(null);       
});

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

1 Ответ

1 голос
/ 21 июля 2010

"domready" не событие, поэтому я удивлен, что это работает вообще.Например, в Mozilla и Opera это должен быть DOMContentLoaded.Вы уверены, что он не работает только потому, что иногда document.referrer пуст, а иногда нет?

Было бы намного проще, если бы вы просто поместили код в блок <script> (желательно во внешний файл).) и поместите его перед закрывающим тегом.Тогда он будет работать, когда DOM будет готов, и нет никаких проблем с событиями.Это должно работать нормально.

Наконец, похоже, что это лучше всего сделать на стороне сервера, так как с чем-то вроде PHP вы также можете получить доступ к рефереру HTTP.Тогда вы можете просто вывести результат прямо в HTML.Кроме того, вы позволяете этому нечетному пользователю использовать NoScript или просто просматривать без JavaScript, чтобы увидеть этот контент.

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