javascript - 如何观看 google dataLayer 对象?
问题描述
是否可以在纯JavaScript中有效地观察 dataLayer 的变化?每次调用 dataLayer.push 函数时,我都需要了解添加到 dataLayer 的添加和检查事件。我找不到任何解决方案。我需要类似angularJS$watch
的东西,你可以在其中观察任何对象的变化,但是在我提到的这个脚本中,我只能使用普通的JS。一秒间隔无限循环不是很好的解决方案 :) 感谢您的提示、提示或建议。
我需要一些想法,例如:
function callback() {
// do the stuff with dataLayer
}
watch(window.dataLayer, callback);
window.dataLayer.push({event: 'any event', data: 'any data'});
window.dataLayer.push({event: 'any second event', data: 'any second data'});
解决方案
您可以重新定义 dataLayer.push 函数并将其与 JS 中的自定义事件相结合:https ://developer.mozilla.org/en-US/docs/Web/API/CustomEvent/CustomEvent
例子:
var x = dataLayer.push; //make x equal to current datalayer function
dataLayer.push = function (myobj){
x(myobj);//call current function
alert('my event dispatch');//event dispatch code goes here
}
推荐阅读
- excel - 将范围复制到另一张纸
- java - 不明白为什么循环不更新变量值
- android - 如何在没有系统栏的情况下全屏显示启动画面?
- android-studio - Android Pepper 应用程序:E/qi.path.sdklayout:无法创建目录 - 权限被拒绝
- pandas - 物品长度错误 1 而不是 50 熊猫
- c - 这段代码中出现分段错误的原因是什么?
- python - 为什么我在熊猫重新分配中得到弱引用?
- python - 如何从字符串列表中创建所有第 n 个字符的列表列表?
- python - Django 动态设置
- javascript - 无法从 Google 应用脚本中的 Shopify webhook 获取嵌套数据