我在 GTM(Google 跟踪代码管理器)中创建了以下代码:
(function(window) {
if (typeof(dataLayer[dataLayer.length-1].count) !== "undefined"){
dataLayer.push({'count':dataLayer[dataLayer.length-1].count+1});
} else {
dataLayer.push({'count':1});
}
})(window);
最初,当没有“count”推送到数据层时,if 语句返回 false 并推送 { "count": 1} 。之后,计数值应随着每次推送而增加。我的目标只是计算某个按钮的点击次数。
但是,“if”语句似乎从未经过验证,因此每次单击按钮都会将“0”-s 推送到数据层。我知道这不是最好的解决方案,但我仍然无法找出为什么这不起作用。顺便说一句,当我在浏览器控制台中运行此代码时,它正在工作。
最佳答案
我必须使用 dataLayer.length-2
而不是 dataLayer.length-1
来访问 count
。这是由于GTM在每次点击事件后将gtm.click推送到dataLayer造成的
关于javascript - 从 GTM 访问数据层,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43684676/