我正在尝试将分析事件跟踪添加到窗体上提交输入的onclick事件中。在表单提交上触发Google Analytics(分析)事件
我试过多个不同的例子,并引用了几个不同的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>
我也发现,如果我添加返回false到第一个示例的onclick事件的结尾,它将触发分析事件跟踪但不提交表单。
我修改这个为具有1秒超时+添加缺少的[在分析推代码。事件跟踪工作,但没有提交表格。 – James
抱歉,错字(和setTimeout错过!) - 只需要很短的延迟,150ms似乎工作。我还添加了一个替代例子。 – mike
我仍然无法实现此功能,这两种方法都会触发分析事件,但都不会提交表单。我不禁感到我失去了一些明显的东西。 – James