【问题标题】:Google analytics blocking open in a new window谷歌分析阻止在新窗口中打开
【发布时间】:2012-04-24 14:40:03
【问题描述】:

我正在尝试使用另一家公司的谷歌分析代码。不幸的是,我没有太多经验,只了解代码的基础知识。

我正在使用的以下代码应该是跟踪跨浏览器点击:(我已经删除了大部分代码并编写了重要的部分)

if (($(link).attr('href').indexOf('example.com') != -1) && 
         (window.location.href.indexOf('example.com') == -1)) {
  $(link).bind('click', function (l) {
    if (typeof (_gat) == "object") {
      l.preventDefault();
      _gaq.push(['_link', $(link).attr('href')]);
    }
  });
}

现在我遇到的问题是阻止默认设置现在阻止所有外部链接在新窗口中打开。

我怎样才能修改此代码并保持跟踪,以便他们仍然这样做?

【问题讨论】:

  • 你是如何得出谷歌分析阻止它的结论的?
  • l.preventDefault() 正在停止常规锚点行为,而 _gaq.push 正在执行页面重定向。当我将其注释掉时,新窗口和同一窗口都会转到新页面
  • 我不确定_gaq.push 是否进行了重定向。我认为您必须手动将window.location 设置为网址 您将跟踪信息添加到谷歌分析.. 你看到这个问题stackoverflow.com/questions/8692503/… 了吗?
  • 其实你是对的,锚仍然在做页面重定向,但是代码中的 preventdefault 删除了 target="_blank" 功能。

标签: jquery google-analytics


【解决方案1】:

_link 在内部设置 location.href 以跳转到新 URL,但忽略链接中的任何目标属性。您可以使用_getLinkerUrl,而不是使用_link,并自己关注URL

$(link).bind('click', function (l) {
  if (typeof (_gat) == "object") {
      var pageTracker = _gat._getTrackerByName();
      var url = pageTracker._getLinkerUrl(this.href);
      l.preventDefault();
      if ($(this).attr('target') != '_blank') location.href = url;
      else window.open(url);
  }
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-04-24
    • 2011-10-31
    • 1970-01-01
    • 1970-01-01
    • 2014-09-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多