javascript - 将新的 Google Analytics 代码写入外部文件

标签 javascript jquery html google-analytics

新的 Google Analytics 代码如下所示:

<script type="text/javascript">

 var _gaq = _gaq || [];
 _gaq.push(['_setAccount', 'UA-0000000-00']);
 _gaq.push(['_trackPageview']);

 (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>

如何将全新的 Google Analytics 异步跟踪代码移动到外部 JavaScript 文件中?

我特别询问“var _gaq = _gaq || []; [...]”部分,因为我知道可以移动其余部分,例如

index.html

<script type="text/javascript">

 var _gaq = _gaq || [];
 _gaq.push(['_setAccount', 'UA-0000000-00']);
 _gaq.push(['_trackPageview']);

</script>
<script src="include.js" type="text/javascript"></script>

include.js

function includeGA()
{
 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);
}

$(document).ready(function()
{
 includeGA();
});

我已经尝试将“var _gaq = _gaq || []; [...]”代码放置到不同的位置,但没有任何效果。

最佳答案

出于两个原因,您不应该将 GA 代码放入函数中:

  1. GA 的变量成为本地变量。它们需要在全局范围内使用。
  2. 只有在加载整个页面(从技术上讲是文档)时,您才调用该函数。这使得下载过程串行(击败异步分析的并行性)。

批评将外部 JS 用于 GA 代码的人在这里有点不对。在 js embed 中引入 async 属性,这是有道理的。我将此 GA 代码保存在外部 js 中,并将其异步嵌入到文档的头部。两个好处:

  1. 保持代码整洁(无内联 GA)
  2. 缓存 js - 节省带宽和加载速度更快

因此 HTML 将变为:

<head>
    <script type="text/javascript" src="static/scripts.js" async></script>
</head>

scripts.js 将具有:

var _gaq=_gaq||[];
_gaq.push(['_setAccount','UA-XXXXXXXX-1']);
_gaq.push(['_setDomainName','.domain.net']);
_gaq.push(['_trackPageview']);
(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)
})();

关于javascript - 将新的 Google Analytics 代码写入外部文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3870345/

相关文章:

javascript - onSubmit 在 react-bootstrap 导航下拉菜单中不起作用

javascript - 为什么每次我在 Chrome 中更改日期字段中的年份时都会触发 onChange 事件?

javascript - XMLHttpRequest 中默认的 Content-Type 是什么?

javascript - 输入文本时增加输入字段的大小

html - 设置 Canvas 的 "internal"尺寸?

用于更新单个 MySQL 记录的 PHP 表单不起作用

javascript - 在 API 错误时打破 Vuex 操作中的 promise

javascript - Wordpress:我的 JS 文件没有执行任何代码,也没有返回 404 错误

javascript - 当用户在不同的电台/专辑上点击播放时,我想改变封面图片

javascript - 类型错误 .then() 不是 webpack 2 中的函数