我的代码依赖于可在此处运行的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它也不起作用。
答案 0 :(得分:1)
如果您只是将代码放在<script>
块中(最好放在外部文件中)并将其放在结束标记之前,那就简单多了。然后它会在DOM准备就绪时运行,并且对事件没有任何不满。那应该没问题。
最后,这看起来最好在服务器端完成,就像PHP之类的东西一样,你也可以访问HTTP引用者。然后,您可以直接将结果输出到HTML中。此外,您可以使用NoScript允许那些奇怪的用户,或者只是在没有JavaScript的情况下浏览以查看此内容。