0

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

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

$('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。有没有人实施过这样的事情并工作?

4

2 回答 2

1

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

作为旁注,我想指出,最好简单地添加一个“全部”的自定义链接值,而不是为每个链接发送一个点击。有了这么多的服务器调用,您只会导致额外的流量(可以更好地使用)并且可能最终得到不可靠的数据(某些请求可能会失败)。

于 2011-01-24T22:14:54.930 回答
0

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

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

于 2010-05-14T04:30:57.183 回答