出站链接跟踪和“未定义”链接

时间:2015-08-11 15:21:22

标签: javascript jquery google-analytics flexslider

我在一个运行良好的网站上安装了以下出站链接跟踪代码。

麻烦的是它导致网站上的图像滑块中的点出现问题(使用flexslider)。单击这些点时,它们通常会将图像滑块移动到该幻灯片,但链接跟踪脚本会导致页面重新加载并转到“/ undefined”(即www.domain.com/undefined)。

$(function() {
    $("a").on('click',function(e) {
        var url = $(this).attr("href");
        if (e.currentTarget.host != window.location.host) {
            _gat._getTrackerByName()._trackEvent("Outbound Links", e.currentTarget.host.replace(':80',''), url, 0);
            if (e.metaKey || e.ctrlKey || this.target == "_blank") {
                var newtab = true;
            }
            if (!newtab) {
                e.preventDefault();
                setTimeout('document.location = "' + url + '"', 100);
            }
        }
    });
});

如何解决这个问题的任何提示都将受到高度赞赏。

提前致谢,

汤姆

1 个答案:

答案 0 :(得分:1)

您可以过滤选择器结果或检查何时未定义href,这似乎是滑块的点,如下所示:

$(function() {
    $("a").on('click', function(e) {
        var url = $(this).attr("href");
        if (url && e.currentTarget.host != window.location.host) {
            _gat._getTrackerByName()._trackEvent("Outbound Links", e.currentTarget.host.replace(':80', ''), url, 0);
            if (e.metaKey || e.ctrlKey || this.target == "_blank") {
                var newtab = true;
            }
            if (!newtab) {
                e.preventDefault();
                setTimeout('document.location = "' + url + '"', 100);
            }
        }
    });
});