Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/479.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在表单提交时触发google analytics事件_Javascript_Jquery_Onclick_Google Analytics_Analytics - Fatal编程技术网

Javascript 在表单提交时触发google analytics事件

Javascript 在表单提交时触发google analytics事件,javascript,jquery,onclick,google-analytics,analytics,Javascript,Jquery,Onclick,Google Analytics,Analytics,我正在尝试将分析事件跟踪添加到表单上提交输入的onclick事件中 我尝试了多个不同的例子,并引用了几个不同的SO帖子来达到这一点。我可以让onclick提交表单或触发跟踪事件,但不能同时提交表单和触发跟踪事件 第一个示例:(向控制台提交表单+日志,但不触发事件) 第二个示例:(将事件+日志激发到控制台,但不提交表单) 我还发现,如果在第一个示例的onclick事件末尾添加return false,它将触发分析事件跟踪,但不会提交表单。(这确实需要一个FAQ…) Google Analy

我正在尝试将分析事件跟踪添加到表单上提交输入的onclick事件中

我尝试了多个不同的例子,并引用了几个不同的SO帖子来达到这一点。我可以让onclick提交表单或触发跟踪事件,但不能同时提交表单和触发跟踪事件

第一个示例:(向控制台提交表单+日志,但不触发事件)


第二个示例:(将事件+日志激发到控制台,但不提交表单)


我还发现,如果在第一个示例的onclick事件末尾添加return false,它将触发分析事件跟踪,但不会提交表单。

(这确实需要一个FAQ…)

Google Analytics通过从分析服务器请求图像来记录数据,跟踪数据作为图像请求的参数。如果在
\u trackEvent
\u pageView
之后立即在当前窗口中呈现新页面,则可以取消图像请求,并且不记录任何数据

通常的模式是在加载新页面或提交表单之前增加一点延迟

试一试


使用新的analytics.js(universal analytics)是可能的

链接:

  • 关于堆栈溢出的问题:

我将其修改为1秒超时+在分析推送代码中添加了一个缺失的[1]。事件跟踪工作正常,但表单未提交。很抱歉输入错误(以及setTimeout上的缺失延迟!)--只需要很短的延迟,150毫秒似乎有效。我还添加了一个替代示例。我仍然无法使其生效,这两个示例都将触发分析事件,但都不会提交表单。我忍不住觉得我遗漏了一些明显的内容。
<!-- 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>
<input type="submit" name="submit" value="Submit" onclick="
  var _this = this; 
  _gaq.push(['_trackEvent', 'Forms', 'Submit', 'Home Contact']);
  setTimeout(function() {$(_this).parents('form').submit()}, 150);
  return false;"
>
$('#form').submit(function(e){
  e.preventDefault();
  _gaq.push(['_trackEvent', 'Forms', 'Submit', 'Home Contact']);
  var form = this;
  setTimeout(function(){ form.submit()}, 150);
});