什么是为了观察德`dataLayer`阵列使用谷歌标签管理模式?(What is the patte

2019-10-22 04:10发布

我观察到的dataLayer阵列,我看不出有什么变化push 。 根本没有自定义方法,其实。 GTM是如何观察更改阵列? 据我所知,变为一个Array不引发任何事件,不是吗?


编辑:

我做了一些调查研究,发现谷歌图书馆与相互作用的dataLayer : https://github.com/google/data-layer-helper#listening-for-messages
我会看看代码,甚至回答我的问题,如果我理解ineer运作。

Answer 1:

通过使用GTM图案是发布 / 订户

在代码中的一些细节,有助于识别它:线76和181 https://github.com/google/data-layer-helper/blob/master/src/helper/helper.js

最后线114和119

// Add listener for future state changes.
  var oldPush = dataLayer.push;
  var that = this;
  dataLayer.push = function() {
    var states = [].slice.call(arguments, 0);
    var result = oldPush.apply(dataLayer, states);
    that.processStates_(states);
    return result;
  };

看看进入states变量,它是如何传递给this.processStates_()



文章来源: What is the pattern used by Google Tag Manager in order to observe de `dataLayer` Array?