Я пытаюсь добавить отслеживание событий аналитики в событие onclick для ввода ввода в форме.Увольнение события Google Analytics в форме submit
Я пробовал несколько разных примеров и ссылался на пару разных сообщений SO, чтобы добраться до этой точки. Я могу заставить onclick либо отправить форму ИЛИ запустить событие отслеживания, но не то, и другое.
Первый пример: (Направляет форма + журналы на консоли, но не срабатывает событие)
<!-- Analytics tracking code -->
<form action="test.php" id="form" method="post">
<input type="text" name="name" id="name">
<!-- Submits form + logs to console but doesn't fire event -->
<input type="submit" name="submit" value="Submit" onclick="
var _this = this;
_gaq.push(
['_trackEvent', 'Forms', 'Submit', 'Home Contact'],
function() {
console.log('submitting');
$(_this).parents('form').submit();
}
);
">
</form>
Второй пример: (Пожары событий + журналы на консоль, но не представляет форму)
<!-- Analytics tracking code -->
<form action="test.php" id="form" method="post">
<input type="text" name="name" id="name">
<!-- Fires event + logs to console but doesn't submit form -->
<input type="submit" name="submit" value="Submit" onclick="
var _this = this;
_gaq.push(['_set','hitCallback',function(){
console.log('submitting');
$(_this).parents('form').submit();
}]);
_gaq.push(
['_trackEvent','My category','My action']
);
return !window._gaq;
">
</form>
Я также обнаружил, что если я добавлю return false в конец первого примера события onclick, он упустит отслеживание событий аналитики, но не отправит форму.
Я изменил это, чтобы иметь тайм-аут 1 сек + добавлен недостающий [в аналитику нажмите код. Отслеживание событий работало, но форма не была отправлена. – James
Извините за опечатку (и пропущенную задержку на setTimeout!) - требуется только небольшая задержка, похоже, работает 150 мс. Я также добавил альтернативный пример. – mike
Я до сих пор не могу заставить это работать, оба из них увидят событие analytics, но не отправят форму. Я не могу не чувствовать, что мне не хватает чего-то очевидного. – James