Я бы хотел разрешить поведение по умолчанию для определенных элементов (т. Е. <a>
и <form>
), пока я не смогу быть уверенным, что элементы в очереди Google Analytics были обработаны.
Я видел много методов, которые включают добавление прослушивателя событий, который останавливает переданное событие (event.stop()
или event.stopPropagation()
или return false
) или предотвращает его поведение по умолчанию (event.preventDefault()
).Затем для этого требуется, чтобы поведение было каким-то образом переписано, вместо того, чтобы просто передавать / активировать / освобождать исходное событие.
Например, для mootools я мог бы использовать следующий обработчик события на <a id="special-a-element">
для нажатия иобработать событие GA перед перенаправлением на целевой документ:
$('special-a-element').addEvent('click', function() {
var url = this.get('href');
_gaq.push(['_trackEvent', 'category', 'action']);
_gaq.push(function() { document.location = url; });
return false;
});
Здесь document.location
воссоздает то, что браузер мог бы сделать, если бы ему было разрешено иметь дело с остановленным событием click
(сreturn false
);это кажется ненужным.Что если у special-a-element
было target = "_blank"
?Слушатель не будет открывать ссылку в новом окне, но в текущем (из-за document.location
).
Поэтому я хотел бы разрешить поведение по умолчанию, не останавливая его, а затем повторно реализоватьон .Есть предложения?