【问题标题】:Javascript link tracking script + SafariJavascript 链接跟踪脚本 + Safari
【发布时间】: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


【解决方案1】:

这是随机的,但您可以尝试在查询字符串中添加一个随机参数(名称和值),例如:

Math.random(0, 1000) + '=' + Math.random(0, 1000)

过去我必须这样做才能让 Safari 注册动态加载的资源。 (我看到你已经有&amp;rnd=,但也许也可以尝试随机化名称?)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-03-12
    • 1970-01-01
    • 2013-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-04
    相关资源
    最近更新 更多