JavaScript:Google Analytics跟踪事件不会触发

时间:2013-11-04 10:09:23

标签: javascript google-analytics

我已将该函数放入表单验证部分,因此只有当表单有效时,才会发送信标。我相信我错过了一些东西。请参阅下面的代码。

function checkForm() {
    var error = "";
    if($("#first_name").val()=="") { error+="- Enter your first name.\n";};
    if(error=="") {
        _gaq.push(['_trackEvent','Form','Submit','Newsletter']);
        return true;
    } else {
        alert("Please correct these form errors before you submit the form:\n\n"+error)
        return false;
    }
}

编辑:感谢大家的帮助!测试了这一个,100毫秒似乎不够。

现在我想以更聪明的方式做这件事。一旦所有必填字段都包含文本,提交它是有意义的,但它应该足够聪明,可以多次提交并仅在数据有效时提交!

2 个答案:

答案 0 :(得分:1)

你确定它不是火吗?可能在分析数据更新方面存在一些延迟。如果您在localhost上开发应用程序,则应将_setDomainName属性设置为“none”

_gaq.push(['_setAccount', 'Your-account-id']);
_gaq.push(['_setDomainName', 'none']);

@see:GA Event Tracking from localhost

答案 1 :(得分:1)

尝试使用setTimeout()或setInterval()提供延迟(可能约为100毫秒或更短)并让GA数据提交。为我工作。

function gaSubmit(param){
_gaq.push(param);
}

function checkForm() {
    var error = "";
    if($("#first_name").val()=="") { error+="- Enter your first name.\n";};
    if(error=="") {
        setTimeout(gaSubmit(['_trackEvent','Form','Submit','Newsletter']),100);
        return true;
    } else {
        alert("Please correct these form errors before you submit the form:\n\n"+error)
        return false;
    }
}