我们正在尝试通过 google 标签管理器为 angularjs 应用程序实现跟踪。当使用标签管理器中定义的点击监听器时,以下脚本会在每次点击时注入应用程序(或者看起来如此):
(function (a)
{
var b = {}, c;
for (c in a || {})if (a.hasOwnProperty(c) && "undefined" != typeof a[c])try {
b[c] = JSON.stringify(a[c])
} catch (d) {
console.log("Cannot stringify " + c)
}
a = document.createEvent("CustomEvent");
a.initCustomEvent("RetrievedVariablesEvent", !0, !0, {variables: b});
window.dispatchEvent(a)
})({'studioV2': window['studioV2'], 'richMediaIframeBreakoutCreatives': window['richMediaIframeBreakoutCreatives'], 'dataLayer': window['dataLayer']})
跟踪点击"Cannot stringify dataLayer"
时会发生错误。这样做的原因是,随着单击,元素也被发送,它具有对自身的循环引用,因为子引用和父引用附加到对象(可能通过 jquery ??)。
任何想法如何使用谷歌标签管理器实现点击侦听器,而不会遇到这种递归?