首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >dataLayer.push正在添加新项目,而不是更新现有项目

dataLayer.push正在添加新项目,而不是更新现有项目
EN

Stack Overflow用户
提问于 2019-07-10 01:07:45
回答 2查看 935关注 0票数 0

我正在使用Google Optimize运行一些A/B测试,并试图从我的应用程序中更新dataLayer中的值,但它并没有更新它,它只是向它添加了一个新对象。根据文档,如果键已经存在,它应该更新。

我是不是遗漏了什么?

例如:

代码语言:javascript
运行
复制
// initiate dataLayer at the top of <head>
window.dataLayer = [{
  message: ""
}];

// later after some stuff loaded
window.dataLayer.push({message: 'Test message'});

console.log(window.dataLayer) // added instead of updated
// [
//   {message: ""},
//   {message: "test"}
// ]
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-07-10 16:57:25

简而言之,感谢@IskandarRezaRazali的评论,它工作正常,但我应该使用window.google_tag_manager["GTM-XXXXXX"].dataLayer.get('message') (它总是给你最新的条目)来检索值,而不是试图通过索引或执行Array.find`来访问它。

票数 0
EN

Stack Overflow用户

发布于 2019-07-10 17:00:42

史蒂文

看来您在语句中遗漏了单引号的使用。谷歌在文档中说

代码语言:javascript
运行
复制
dataLayer.push({new-variable: 'value'});      // Won't work

相反,

代码语言:javascript
运行
复制
dataLayer.push({'new-variable': 'value'});    // Better

请看下面的代码

代码语言:javascript
运行
复制
<script>
  dataLayer = [];
  dataLayer.push({'message' : 'Test message'});
</script>

您可以在此处阅读文档- https://developers.google.com/tag-manager/devguide

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56957528

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档