我正在尝试制作链接跟踪脚本。它应该像Google Analytics一样工作,只有它应该发布到我们自己的服务器。我正在使用jQuery。我到目前为止编写的代码如下:
jQuery(document).ready(function() {
var opts;
jQuery.fn.trackAllLinks = function(settings) {
settings = jQuery.extend({}, jQuery.fn.trackAllLinks.defaults, settings);
opts = settings;
function track() {
href = jQuery(this).attr('href');
var trackImage = new Image(1, 1);
trackImage.src = opts.linkredirector + '?eurl=' + jQuery.URLEncode(href) + '&rnd=' + new Date().getTime() + '&title=trackerimage.gif';
trackImage.onload = function() {
trackImage.onload = null;
doNothing();
}
delay(300);
return true;
};
function delay(mseconds) {
var currentTime = new Date();
var endTime = currentTime.getTime() + mseconds;
while (currentTime.getTime() < endTime) {
currentTime = new Date();
}
}
function doNothing() {
}
if(jQuery(this).is("a")) {
jQuery(this).click(track);
}
jQuery(this).find("a").click(track);
};
jQuery.fn.trackAllLinks.defaults = {
linkredirector : '__url_to_post_on__'
};
});
除了Safari之外,它在所有浏览器中都能正常运行。当我使用mailto链接或锚点时,它可以工作,但是当我链接到另一个页面时它不起作用。我一直在测试很多不同的实现,我无法让它工作。你们任何人都知道我错过了什么?我试图了解Google Analytics的工作原理,据我所知,它也是如此。当我使用WireShark监控我的网络时,我发现正在请求Google的图像,但我的图像不是。
映入眼帘, 大安
答案 0 :(得分:0)
这是随机的,但您可以尝试在查询字符串中添加随机参数(名称和值),例如:
Math.random(0, 1000) + '=' + Math.random(0, 1000)
我过去必须这样做才能让Safari注册一个动态加载的资源。
(我看到你已经&rnd=
了,但是也可以尝试随机化这个名字?)