javascript - 为什么 Google Analytics 会在页面中动态注入(inject) javascript

标签 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 子域。如果不是这样,还有什么理由使用这种脚本注入(inject)技术吗?

最佳答案

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

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

关于javascript - 为什么 Google Analytics 会在页面中动态注入(inject) javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14815481/

相关文章:

javascript - Promise 通过 for 循环提前返回

javascript - 从另一个对象中访问对象属性 (JavaScript/jQuery)

javascript - Codeigniter:根据选择 ID 值更改数据表

javascript - 如何访问 promise `.then` 方法之外的变量?

javascript - 当我们通过 for..of 迭代它时,可以将参数传递给生成器吗?

google-analytics - Google Analytics(分析):标记一些访问者以在以后的分析中对其进行过滤?

javascript - 我的跟踪代码有什么问题吗?

android - Android 上的 Google Analytics 给出平均 session 持续时间 : 00:00:00

joomla - 谷歌分析跟踪子域错误

r - 使用RGoogleAnalytics查询自定义维度