只是想知道google analytics代码段如何在javascript编程方面发挥作用。
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-XXXXX-X']);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script');
ga.src = ('https:' == document.location.protocol ? 'https://ssl' :
'http://www') + '.google-analytics.com/ga.js';
ga.setAttribute('async', 'true');
document.documentElement.firstChild.appendChild(ga);
})();
</script>
1)我们将2个元素推送到_gaq数组但是什么时候它实际上被执行/使用,特别是因为ga.js坐在远程服务器上?我试着查看ga.js代码,但它确实令人困惑。
2)如果该网站为https://会发生什么,但我们仍将javascript链接为http://www.google-analytics.com/ga.js
(function() {
var ga = document.createElement('script');
ga.src = 'http://www.google-analytics.com/ga.js';
ga.setAttribute('async', 'true');
document.documentElement.firstChild.appendChild(ga);
})();
答案 0 :(得分:3)
_gaq
是global variable(在浏览器中全局变量存储在Window
对象中)
它在https://ssl.google-analytics.com/ga.js
中的引用如下:
var He = function () {
var a = W._gaq,
b = l;
if (a && Aa(a[p]) && (b = "[object Array]" == Object[y][w].call(Object(a)), !b)) {
Z = a;
return
}
W._gaq = Z;
b && Z[p][xa](Z, a)
};
W也指Window全局变量(脚本被缩小以保存字节):
var W = window,
为方便起见,我在此处粘贴了格式化的ga.js版本: http://pastebin.com/sBmeSg9M
请看第603行和第1956行。
答案 1 :(得分:1)
Google Analytics代码会在您的网页上加载并运行,因此可以访问window
及其上定义的所有变量。 _gaq
是Google的代码在运行时检查的神奇变量名称,以查看已定义的内容并使用它找到的值开始跟踪内容。然后它会跟踪页面加载期间对此变量的更改(点击事件跟踪等)。
正如其他人所提到的,在通过HTTPS提供服务的网页上未能使用Google Analytics的HTTPS网址会导致出现“不安全内容”的警告。坚持谷歌提供的代码,他们这样做是有原因的。
答案 2 :(得分:0)
2)如果该网站为https://会发生什么,但我们仍将javascript链接为http://www.google-analytics.com/ga.js
这会阻止几乎所有现代浏览器(例如Chrome)加载JS文件,并向用户显示一些警告“存在”不安全内容“。
这背后的原因是,加载JS文件将允许MITM attacks没有SSL证书警告。
答案 3 :(得分:0)
2:然后您的SSL证书无法正常工作。您的SSL站点包含非ssl(https)脚本。这是你的意思吗?