使用Jquery循环元素并调用Omniture s.tl()函数进行跟踪

时间:2010-05-11 12:02:51

标签: jquery analytics tracking web-analytics-tools adobe-analytics

我有一个包含项目列表的页面。每个项目都有一个打印链接(a.printMe)来打印每个项目。在列表的末尾,有一个打印所有链接(a.printAll)以打印所有项目。

我想跟踪项目的打印次数。如果点击了a.printAll链接,那么我会将所有商品的跟踪值发送到Omniture。我将跟踪字符串添加到单个项目的a.printMe href属性中,并使用以下函数进行跟踪:

$('a.printMe').click(function() {
   var value = $(this).attr('href');
   track(value);
});

$('a.printAll').click(function() {
   $('a.printMe').each(function() {
      this.click();
   }); // works in IE only. IE 6-8
}); 

function track(value) {
   var s = s_gi('account');
   s.prop10 = value;
   s.linkTrackVars = 'prop10';
   s.tl(true, 'o');
}

在IE 6-8中,当我点击a.printAll时,所有值都正常发布。我了解在Firefox中,click事件仅适用于input元素。所以我实现了以下内容:

$('a.printMe').each(function() {
   var trackingCode = $(this).attr('href').replace('#','');
   track(trackingCode);
});

但只有最后一项的值被发送到Omniture。有没有人实现过这样的工作?

2 个答案:

答案 0 :(得分:1)

如果没有第三个参数,该函数会尝试读取href,但由于此失败,它无法按预期工作。

作为旁注,我想指出,只需添加自定义链接值“all”而不是为每个链接发送一个匹配将是首选。通过这么多服务器调用,您只需要产生额外的流量(可以更好地使用),最终可能会出现不可靠的数据(某些请求可能会失败)。

答案 1 :(得分:0)

FIXED:s.tl(true, 'o');应该包含value作为最后一个参数。

所以最终结果应该是s.tl(true, 'o', value);