Зацикливайте элементы с помощью Jquery и вызывайте функцию Omniture s.tl() для отслеживания

у меня есть страница со списком предметов. У каждого элемента есть ссылка «Печать сейчас» (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 отправляется только значение последнего элемента. Кто-нибудь реализовал что-то подобное и работает?


person zen.c    schedule 11.05.2010    source источник
comment
в Firefox событие click предназначено только для элементов ввода. Это неверно. Событие click в Firefox срабатывает при щелчке по всем типам элементов.   -  person GlenCrawford    schedule 12.05.2010
comment
Извините, я должен был разъяснить. Я пытаюсь реализовать симуляцию щелчка мыши. С веб-сайта mozilla: метод click предназначен для использования с элементами INPUT типа кнопки, флажка, радио, сброса или отправки. Gecko не реализует метод щелчка для других элементов, которые, как ожидается, будут реагировать на щелчки мышью, таких как ссылки (элементы A), и не обязательно вызовет событие щелчка других элементов.   -  person zen.c    schedule 13.05.2010


Ответы (2)


Если третьего аргумента нет, функция пытается прочитать href, но поскольку это не удается, она не работает должным образом.

В качестве примечания я хотел бы указать, что было бы предпочтительнее просто добавить пользовательское значение ссылки «все» вместо отправки одного обращения для каждой ссылки. С таким количеством вызовов сервера вы просто создаете дополнительный трафик (который можно было бы использовать лучше) и можете получить ненадежные данные (некоторые запросы могут завершиться неудачно).

person Sampsa Suoninen    schedule 24.01.2011

ИСПРАВЛЕНО: s.tl(true, 'o'); должен включать value в качестве последнего параметра.

Таким образом, конечный результат должен быть s.tl(true, 'o', value);

person zen.c    schedule 14.05.2010
comment
хм... 3-й аргумент s.tl() является необязательным аргументом, чтобы дать ссылке понятное имя для целей отчетности. Я сомневаюсь, что добавление этого действительно решило вашу проблему ... что еще вы сделали? - person Crayon Violent; 25.07.2010
comment
Привет Crayon, это все, что я сделал. В основном значения печатаются в консоли firebug. Но просто сетевая активность показывает, что отправляется только последнее значение. Добавление значения в качестве последнего параметра работает для меня;) - person zen.c; 22.08.2010