![](/img/trans.png)
[英]JSF commandlink and form submit Google Analytics event tracking
[英]Google Analytics form submit event tracking
我有一個表單提交到我不擁有的另一個域,需要在 Google Analytics 中跟蹤事件。 我寧願不使用 jQuery 來避免依賴,但我不明白為什么這段代碼不起作用:
<form action='example.com/search' onsubmit='trackSubmit()' id='frm'>
<button type='submit'>Search</button>
</form>
<script type='text/javascript'>
function trackSubmit(e) {
var bForm = document.getElementById('frm');
bForm.addEventListener('submit', function(e){
e.preventDefault();
_gaq.push('_trackEvent', 'Foobar', 'Foobar Form Submit');
setTimeout(function(){
console.log('tracking foobar');
bForm.submit();
}, 1000);
}, false);
}
</script>
onsubmit='trackSubmit()'
和bForm.addEventListener('submit', function(e){
這似乎是錯誤的部分。 如果你在submit
上調用trackSubmit()
,那么在這個函數中添加一個監聽器是沒有用的,它甚至不會觸發。 我相信它應該只是:
<form action="http://example.com/search" onsubmit="return trackSubmit()" id="frm">
<button type="submit">Search</button>
</form>
<script type="text/javascript">
function trackSubmit() {
var frm = document.getElementById('frm');
_gaq.push('_trackEvent', 'Foobar', 'Foobar Form Submit');
setTimeout(function(){
console.log('tracking foobar');
frm.submit();
}, 1000);
return false;
}
</script>
這將可重復用於多次提交跟蹤。
<script type="text/javascript">
function trackSubmissions(form, category, name, value) {
try {
_gaq.push(['_trackEvent', category, name, value]);
} catch(err){}
setTimeout(function() {
form.submit();
}, 100);
}
</script>
<form onsubmit="trackSubmissions(this, 'category', 'name', 'value'); return false;">
</form>
對於偶然發現這個問題並正在使用新版本的谷歌通用分析的用戶。 這是提交按鈕和鏈接點擊的代碼
<script type='text/javascript'>
function trackSubmit() {
ga('send', 'event', 'button', 'click', 'searchsubmit', 4);
alert('testing send event')
}
function trackClick() {
ga('send', 'event', 'button', 'click', 'This is coool');
}
</script>
<body>
Pushing data.......
<form onsubmit='trackSubmit()' id='frm'>
<button type='submit' id= 'searchsubmit'>Search</button>
</br>
<a href='http://cool.com' onclick="trackClick(); return false;">cool</a>
</form>
</body>
我已經發出警報以顯示正在觸發事件,因為當頁面提交並且您將在調試器中查看控制台時,您的事件將不可見。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.