首页 > 解决方案 > 如何观看 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'});

标签: javascriptgoogle-analytics

解决方案


您可以重新定义 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
}

推荐阅读