为什么我需要使用:
(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 子域。如果不是这样,还有什么理由使用这种脚本注入(inject)技术吗?
最佳答案
能够根据父页面的协议(protocol)提供
http
或https
是原因之一。由于脚本是通过运行 JS 代码插入的
script
标记注入(inject)的,因此它不会阻止页面加载。这是另一个原因。但这可以通过新的 HTML5 很好地实现 async也有属性(但这与旧浏览器不兼容——GA 绝对需要与几乎所有浏览器兼容)
关于javascript - 为什么 Google Analytics 会在页面中动态注入(inject) javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14815481/