Google代码管理器导致页面表单提交两次

时间:2018-01-15 16:57:50

标签: javascript html asp.net-mvc forms google-tag-manager

我有一个网页 - 我认为这是相当标准的。

基本上类似于:

<form action="/mywebsite/mypage" method="post" novalidate="novalidate">
  <div class="blah">                    
    <input class="form-control" id="name" maxlength="80" name="name" tabindex="1" type="text" value="">
    <!-- tonnes more inputs and labels and stuff -->
    <input type="submit" class="btn" value="Submit" tabindex="2">   
  </div>
</form>

但是当按下提交按钮时,表单会被提交两次(取决于浏览器)。

Firefox - 工作正常 - 一直提交一次 Chrome - 断断续续,主要是作品,有时会提交两次 IE(边缘) - 100%的时间提交两次

管理将其缩小到谷歌标记管理器。当它被删除它工作正常。

所以我在_layout页面中有这个脚本(母版页,模板页面,无论你怎么称呼它)

<!-- Google Tag Manager -->
<noscript>
    <iframe src="//www.googletagmanager.com/ns.html?id=GTM-ABCDEF1"
            height="0" width="0" style="display: none; visibility: hidden">
    </iframe>
</noscript>
<script>
    (function(w, d, s, l, i) {
        w[l] = w[l] || [];
        w[l].push({
            'gtm.start':
                new Date().getTime(),
            event: 'gtm.js'
        });
        var f = d.getElementsByTagName(s)[0],
            j = d.createElement(s),
            dl = l != 'dataLayer' ? '&l=' + l : '';
        j.async = true;
        j.src =
            '//www.googletagmanager.com/gtm.js?id=' + i + dl;
        f.parentNode.insertBefore(j, f);
    })(window, document, 'script', 'dataLayer', 'GTM-ABCDEF1');
</script>

<!-- End Google Tag Manager -->

所以我试图了解发生了什么 - 为什么会导致它 - 以及如何阻止它。
我可以解决它 - 但我不想。宁愿正确修复它。

注意:是的,由于某种原因,网址开始//而不是https:// - 但更改它没有任何区别。

有什么想法吗?

我对谷歌分析有一个非常基本的了解 - 但是有关谷歌标签管理员的知识。

1 个答案:

答案 0 :(得分:1)

GTM中的错误,有关详细信息,请参阅https://productforums.google.com/forum/?nomobile=true#!topic/tag-manager/QVb2sNyvp5k;context-place=forum/tag-manager。所选答案并非正确答案。