如何在Google dataLayer对象上观看?

时间:2019-02-07 12:09:44

标签: javascript google-analytics

是否可以有效地监视纯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'});

1 个答案:

答案 0 :(得分:1)

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