【发布时间】:2010-12-03 22:12:43
【问题描述】:
我正在尝试制作链接跟踪脚本。它应该像 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 链接或锚点时,它可以工作,但是当我链接到另一个页面时,它不起作用。我一直在测试很多不同的实现,但我无法让它工作。你们中有人知道我错过了什么吗?我试图了解谷歌分析是如何工作的,据我所知,它也是如此。当我使用 WireShark 监控我的网络时,我看到正在请求 Google 的图像,但我的图像不是。
问候, 大安
【问题讨论】:
-
这可能没有太大区别,但 Windows 上的 Safari 是否存在此问题?还是在 Mac 上?
-
我在两个版本中都测试过,它们都给出了同样的问题。在 Mac 上的 Safari 中,我能够调试 javascript 并正确执行.. 就像图像没有及时加载一样,因为点击后您将在不同的页面上。
标签: javascript jquery safari hyperlink