- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
这是我的数据层数组:
dataLayer = [{
'giftBatch' : {
'giftID': '',
'giftAmount': 0,
'giftCount': 0,
'giftUpdate': {
'giftPhase': 'Gift Empty'
}
},
'txBatch': {
'txID': '',
'txTotal': 0,
'txURL': window.location.href,
'txUpdate': {
'txPhase': 'Transaction Opened',
'txT0': new Date(),
'txT1': ''
'txT2': ''
}
}
}];
控制台结果是:Array [Object1]
Object1 根据需要包含“giftBatch”和“txBatch”对象。
我有一个稍后触发的触发器来更新 dataLayer 中的对象。
例如,将“giftAmount”更新为 50,将“giftCount”更新为 1。
我已经尝试了以下(我只是展示了我修改“一次一个对象”的不成功尝试),
尝试 1:
dataLayer.push({giftAmount : 50});
结果:
数组[object1, object2]
Object1同上,
Object2 是一个新对象,属性为'Gift Amount' : 50,
尝试 2:
dataLayer.push({giftBatch.giftAmount: 222});
结果: SyntaxError: missing : after property id
尝试 3:
dataLayer.push({'giftBatch.giftAmount' : 50});
结果:
数组[object1, object2]
Object1同上,
Object2 是一个新对象,其属性为 'giftBatch.giftAmount': 50
我在这里做错了什么?
根据此处的数据层部分:https://support.google.com/tagmanager/answer/6106899?hl=en
我应该能够编辑嵌套对象的值。
附言。这就是我现在正在使用的,它确实有效。但是,为什么 push 不起作用?
dataLayer[index].giftBatch.giftAmount = 50;
其中 index 是 Object2 的索引。
任何帮助都会很棒。
谢谢。
最佳答案
编辑 dataLayer 的现有内容是不好的做法,但您应该只需要像这样发送覆盖属性值:
dataLayer.push({'giftBatch':{'giftAmount' : 50}});
标签管理器从最新的 Object
开始,并会不断向后查看之前的 Objects 以确定每个 DataLayer 变量的当前设置,因此只有 giftBatch.giftAmount
被覆盖有了这个新的插入。
这里是一个预览调试器的例子,它显示了一个新的 test
对象的 dataLayer 合并 View ,该对象具有以前消息的属性:
在这种情况下,以前的消息(#4 和/或#5)以最小值推送:
{test:{test:8}} // #6 does not contain test.test so it is from earlier
或者在最大他们可以插入:
{test:{test:..,foo:..,test3:..}} // #4 if it's been completely shadowed
{test:{test:8,foo:..,test3:..}} // #5 if it has test.test, must have 8
#3 和#7 之间没有标签可以触发,因为 Messages
是缺少 event
属性的对象,因此在以下情况下,#4 中的任何阴影值都应被视为不可访问接下来可能会在事件 #7 触发的标签上进行跟踪。
关于javascript - 如何正确使用 dataLayer.push() 来更新数组中嵌套对象的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34212960/
我正在 build WP website using DIVI theme .应该被插入 dataLayer 的标签被默认的“未设置”值卡在某个地方。 为了推送我使用脚本的值: functi
我正在尝试为我的网站创建一个数据层,但遇到了这个问题。据我了解:Google 跟踪代码管理器 dataLayer 就是这样工作的,因此您拥有一个包含所有数据变量的 dataLayer 对象。每次您使用
哪一个更优化? 我有一个感谢页面,我需要将所有交易销售信息加载到此页面中,以便通过 Google 跟踪代码管理器将其发布到 Google Analytics(分析)。 我是否使用下面的代码声明 dat
我正在尝试推送dataLayer。但是它一直给我一个重复的数组。请看下面我的代码 dataLayer = [{ 'productID': '123456', 'productTitle':
我想将数据从 HTML 代码提取到我的数据层(Google 跟踪代码管理器)中。 html代码是这样的: ... Javascript 代码是这样的: var lang_log = docume
我正在寻找有关 jQuery 的一些方向。可能有更好的方法来做到这一点,但基本上我试图在用户滚动到页面的 50% 时发送一个 dataLayer 变量,并在用户滚动到页面的 75% 时发送另一个变量。
我需要建议。目前,我有网站。主页上有书签,无需重新加载页面(onclick)。通常我不会有问题,但我无法捕获有关书签的相关数据,如 elementID、elementClasses 等(不可能更改它)
我有一个单页电子商务应用程序,需要设置 Google 电子商务 channel 。我的应用程序在跟踪代码管理器数据层中设置漏斗步骤 文档中没有任何内容表明数据层实际发送到 Google 跟踪代码管理器
进程文件: datalayer or datalayer.exe 进程名称: Nokia PC Suite 5 Component 进程类别:存在安全风险的进程 英文描述: datalaye
我想在 atalayer 中使用对象。我遵循了开发人员文档,他们展示了一个平面数据模型。我想推送一个潜在客户对象并在用户将信息输入潜在客户表单时对其进行更新。 与公司、规模和位置、关键和值(value
在向我们的开发人员提供与GTM代码一起使用的dataLayer代码方面,需要一些建议。 如果dataLayer与容器标记代码一起出现在每个页面上,我如何为整个域中的许多事件定义所有变量? dataLa
我正在使用 Google 跟踪代码管理器自定义我的 GA 设置,我对该工具相当有经验,但今天被一些事情难住了。奇怪的是,标签不会被触发。它被设置为在点击具有特定类的元素时触发,如下所示: 调试后,我可
我在工作中努力实现 Google 跟踪代码管理器,我确实遇到管理员控制台不可用的问题,因此我必须相信配置是正确的。 无论如何,我初始化了 dataLayer 数组,我包含了 GTM 脚本,现在一些事件
我想知道为什么 gtag.js 在推送到 dataLayer 变量数组而不是“参数”时不起作用?下面是一些代码示例: window.dataLayer = window.dataLayer || []
我正在使用谷歌分析和谷歌标签管理器设置电子商务跟踪。 每一个产品详情页面,我也有一个列表——“家庭产品”和“类似产品”。 发送产品详细信息以及这两个列表的正确方法是什么?我正在使用不同的 dataLa
我在网站上为 Google Tag manager 设置了一些自定义标签来跟踪一些自定义数据,但它没有跟踪。 dataLayer 变量在标签管理器代码上方的头部整理了多个这样的数据。 过程是,用户登陆
我正在尝试将 JavaScript 变量传递到数据层。 $(document).ready(function() { var dataTag = $('#data-tag-li
如果我创建一个在 GTM 中的“页面 View ”上触发的标签,我可以在触发该标签后将数据推送到该标签吗? This is the event type I'm using (page view)
我希望有人可以帮助我弄清楚如何从用户在提交过程中在表单上选择的复选框中获取datalayer.push数据。该表单有很多字段,但我只想要已选中的复选框。 最佳答案 您需要检查何时调用dataLayer
是否可以在普通JavaScript中有效地观察数据层的变化?每次调用 dataLayer.push 函数时,我都需要了解此添加和检查添加到 dataLayer 的事件。我找不到任何解决方案。我需要像
我是一名优秀的程序员,十分优秀!