为什么Google Analytics会动态地将javascript注入页面

时间:2013-02-11 15:40:10

标签: javascript google-analytics

为什么我需要使用:

(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();

而不是:

<script async="true" type="text/javascript" src="http://www.google-analytics.com/ga.js"></script>

我能看到的唯一原因是他们有一个不同的SSL子域。如果不是这样,有没有理由使用这种脚本注入技术?

1 个答案:

答案 0 :(得分:6)

  1. 能够根据父页面的协议提供httphttps是一个原因。

  2. 由于脚本是通过运行JS代码插入的script标记注入的,因此不会阻止页面加载。这是另一个原因。但这也很好地通过新的HTML5 async属性实现(但这与旧版浏览器不兼容 - 并且GA绝对需要与几乎所有这些浏览器兼容)