Mat*_*att 1 html javascript tracking nodes htmlelements
这个代码我在随机页面上看到很多.
我认为这是一个谷歌跟踪代码,但有人可以确认吗?
当我在JSFiddle中运行它时似乎没有任何事情发生.
var tvt = tvt || {};
tvt.captureVariables = function(a) {
for (var b = new Date, c = {}, d = Object.keys(a || {}), e = 0, f; f = d[e]; e++)
if (a.hasOwnProperty(f) &&
"undefined" != typeof a[f]) try {
var g = [];
c[f] = JSON.stringify(a[f], function(a, b) {
try {
if ("function" !== typeof b) {
if ("object" === typeof b && null !== b) {
if (b instanceof HTMLElement || b instanceof Node || -1 != g.indexOf(b)) return;
g.push(b)
}
return b
}
} catch (c) {}
})
} catch (l) {}
a = document.createEvent("CustomEvent");
a.initCustomEvent("TvtRetrievedVariablesEvent", !0, !0, {
variables: c,
date: b
});
window.dispatchEvent(a)
};
window.setTimeout(function() {
tvt.captureVariables({
'dataLayer': window['dataLayer']
})
}, 2000);Run Code Online (Sandbox Code Playgroud)
Oka*_*Oka 10
这是由Google的Tag Assistant扩展程序注入的脚本.来源要大得多.
我unminifed的源代码,可以发现这里的要点.请注意,它长约6300行 - 这个答案的长度大约是两万个字符.
注入发生在第3030行附近,具有动态创建的脚本.注意kg,以及他们如何依赖Function.prototype.toString获取函数的源代码.
lg = function(a) {
if (!a.Ab && (a.Ab = !0, a = a.X(), a = Object.keys(a).map(function(a) {
return "'" + a + "': window['" + a + "']"
}), 0 < a.length && (!aa.tvt || !aa.tvt.captureVariables))) {
var b = document.createElement("script");
b.textContent = "var tvt = tvt || {}; tvt.captureVariables = " + kg + ";window.setTimeout(function() {tvt.captureVariables({" + a.join(",") + "})}, 2000);";
(document.head || document.documentElement).appendChild(b)
}
}Run Code Online (Sandbox Code Playgroud)
kg可以在之后立即找到,如下所示,与您发布的内容相对应.
kg = function(a) {
for (var b = new Date, c = {}, d = Object.keys(a || {}), e = 0, f; f = d[e]; e++)
if (a.hasOwnProperty(f) &&
"undefined" != typeof a[f]) try {
var g = [];
c[f] = JSON.stringify(a[f], function(a, b) {
try {
if ("function" !== typeof b) {
if ("object" === typeof b && null !== b) {
if (b instanceof HTMLElement || b instanceof Node || -1 != g.indexOf(b)) return;
g.push(b)
}
return b
}
} catch (c) {}
})
} catch (l) {}
a = document.createEvent("CustomEvent");
a.initCustomEvent("TvtRetrievedVariablesEvent", !0, !0, {
variables: c,
date: b
});
window.dispatchEvent(a)
};Run Code Online (Sandbox Code Playgroud)
关于扩展的模糊,来自About Tag Assistant.
关于Tag助手
Tag Assistant是一个Chrome扩展程序,可自动验证任何指定页面上Google跟踪脚本的实施情况.它目前适用于:
Google Analytics(ga.js)
Google Analytics(dc.js)
AdWords转化跟踪
AdWords再营销(旧版)
AdWords再营销(新的再营销代码)
双击Floodlight
Google跟踪代码管理器
Tag Assistant如何工作
安装扩展程序后,您将看到一个图标,指示您正在查看的页面上的标记状态.
带有"x"的灰色图标表示页面上未找到任何代码
绿色指示器将显示是否找到有效标签.图标中的数字表示找到的标签数量
蓝色指示器将显示有关改善整体标记健康状况的建议
黄色指示器将显示发现标签有轻微的实施问题
红色指示灯将显示发现标签存在严重的实施问题
单击图标以打开包含标记详细信息的窗口.它显示了找到了多少标签,发现了多少错误,任何错误以及指向可用于解决问题的最相关帮助文档的链接.此外,Tag Assistant会在可以进行改进时提出建议.例如,如果已安装过时的Google Analytics代码,则代码助手可能会建议您更新为较新的代码.