为什么Google Analytics会在页面中动态注入javascript

Why does Google Analytics dynamically inject javascript into the page

本文关键字:动态 注入 javascript Google Analytics 为什么      更新时间:2023-09-26

为什么我需要使用:

(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. 能够根据父页面的协议来提供httphttps是一个原因。

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