9

フォームの送信入力の onclick イベントに分析イベント追跡を追加しようとしています。

この点に到達するために、複数の異なる例を試し、いくつかの異なる 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>

2 番目の例: (イベント + ログをコンソールに送信しますが、フォームは送信しません)

<!-- 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>

また、最初の例の onclick イベントの最後に return false を追加すると、分析イベントの追跡が開始されますが、フォームは送信されないこともわかりました。

4

2 に答える 2

0

新しいanalytics.js(ユニバーサルアナリティクス)で可能です。

リンク:

于 2014-12-19T08:54:21.343 に答える