gtag Linker 在 JS form.submit() 上不起作用



我使用了正确的谷歌标记来启用跨网域跟踪。当通过单击提交按钮提交表单时,?ga=...将被添加到目标 URL 中,但是,如果我通过 JS 触发提交事件,则不会添加它。

代码如下:

<head>
    <script>
        //All other common JS code exist
        gtag('set', 'linker', {
            'domains': ['example.com'],
            'decorate_forms': true
        });
        gtag('config', 'UA-...');
    </script>
</head>
<body>
    <form method="POST" action="https://example.com/a/b">
        <button type="submit">Submit</button>
    </form>
    <button id="bt">Click to submit form using JS</button> 
    <script>
        $(document).on('click', '#bt', function(e){
            $('form').submit();
        });
    </script>
</body>

如果我将提交按钮添加到表单并直接单击它,则目的地将是类似https://example.com/a/b?_ga=...。但是,当我通过 JS 提交表单时,目标 URL 就像没有 GA 附录的表单操作一样。

必须注意的是,我使用的是gtag而不是GTM。

它可以通过两种不同的方式解决:

方法 1我们可以将提交触发器更改为提交按钮上的单击触发器。不知道为什么,但是,它解决了:)

的问题
$(document).on('click', '#bt', function(e){
    $('form button[type="submit"]').trigger('click');
});

方法 2我们可以在提交事件中处理我们想要的任何内容,而不是在提交以外的其他按钮上处理点击事件。

$(document).on('submit', 'form', function(e){
    //Do your stuff and handle the event
    return true;
});
尽管问题似乎

已解决,但主要问题仍然存在,并且似乎指向了gtag或jquery form.submit()的潜在错误。因此,如果您可以为悬而未决的问题提供任何解决方案或答案,请继续发布您的帖子,我会将您的答案设为正确的答案。

相关内容

  • 没有找到相关文章

最新更新