Я пытаюсь сделать скрипт отслеживания ссылок. Он должен работать как 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, но мое изображение нет.
приветствует,
Даан