Google 跟踪代码管理器导致页面表单提交两次
Google Tag Manager causing page form to submit twice
我有一个网页 - 我想这是相当标准的。
基本上是这样的:
<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 (Edge) - 提交两次 100% 的时间
设法将其缩小到 google 标签管理器。删除后它可以正常工作。
所以我的 _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 -->
所以我试图了解正在发生的事情 - 为什么会导致它 - 以及如何阻止它。
我可以解决它 - 但我不想这样做。宁愿妥善修复它。
注意:是的,出于某种原因,url 开始 // 而不是 https:// - 但更改它没有区别。
有什么想法吗?
我对 google 分析有非常基本的了解 - 但对 google 标签管理器的了解为零。
GTM 中的错误,请参阅 https://productforums.google.com/forum/?nomobile=true#!topic/tag-manager/QVb2sNyvp5k;context-place=forum/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 (Edge) - 提交两次 100% 的时间
设法将其缩小到 google 标签管理器。删除后它可以正常工作。
所以我的 _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 -->
所以我试图了解正在发生的事情 - 为什么会导致它 - 以及如何阻止它。
我可以解决它 - 但我不想这样做。宁愿妥善修复它。
注意:是的,出于某种原因,url 开始 // 而不是 https:// - 但更改它没有区别。
有什么想法吗?
我对 google 分析有非常基本的了解 - 但对 google 标签管理器的了解为零。
GTM 中的错误,请参阅 https://productforums.google.com/forum/?nomobile=true#!topic/tag-manager/QVb2sNyvp5k;context-place=forum/tag-manager 了解更多信息。所选答案并非正确答案。