Javascript作用域在coffeescript为谷歌分析代码
Javascript scopes in coffeescript for Google Analytics Code
Google Analytics的代码使用全局_gaq
对象作为分析命令。他们建议检查这样的对象是否已经存在,像这样:
var _gaq = _gaq || [];
// Command
_gaq.push(['_trackPageview']);
在CoffeeScript中,它看起来像这样:
_gaq = _gaq or []
编译成:
(function() {
var _gaq;
_gaq = _gaq || [];
}).call(this);
我怎么能写一个CoffeeScript代码,将导致上述Javascript的行为?
要使_gaq
变量在全局作用域中可用,您可以在coffeescript中这样写:
_gaq = window._gaq ?= []
javascript输出:
var _gaq, _ref;
_gaq = (_ref = window._gaq) != null ? _ref : window._gaq = [];
这样以后可以调用_gaq.push(['_trackPageview']);
在stackoverflow中还有一个关于coffeescript中全局变量的问题,你可能想检查一下
如果变量不存在,可以有条件地为它赋值:
window._gaq ?= []
这里有两件棘手的事情:
注意我引用的是
window._gaq
。Google Analytics JavaScript将_gaq
对象直接附加到window
对象上。更多信息请参见:http://coffeescript.org/#lexical-scope观察
?=
操作符。这是CoffeeScript的存在运算符,它提供了比||=
更安全的条件赋值。欲了解更多信息,请谷歌"CoffeeScript存在运算符"。(我想直接链接你,但我不能发布另一个链接,因为我还没有足够的声望点。)
最后,我把一个要点放在一起,我使用谷歌分析跟踪在CoffeeScript在这里:https://gist.github.com/brainix/4394158
你可以这样做:
_gaq?.push ['_code']
编译为:
// Generated by CoffeeScript 1.6.2
(function() {
if (typeof _gaq !== "undefined" && _gaq !== null) {
_gaq.push(['_code']);
}
}).call(this);
相关文章:
- 谷歌地图Api和JS代码不工作
- SIMPLE Javascript代码,用于显示谷歌电子表格中单个字段的数据
- 谷歌地图&地理代码
- 什么'这是谷歌分析跟踪代码使用的技术
- 谷歌地图代码不起作用
- 谷歌caja-阻止恶意代码
- 我想在每个按钮点击事件上加载多个图表.我使用了下面的谷歌代码
- 从谷歌API地理代码的形式字段到数据库
- 谷歌分析-升级到异步代码
- 从页面上的谷歌分析跟踪代码获取帐户ID
- 谷歌跟踪代码管理器使用什么模式来观察 de 'dataLayer' 数组
- 为什么谷歌跟踪代码管理器不能安装在正文下的另一个HTML元素中
- 谷歌地图,基于国家代码可视化国家
- 我可以在谷歌脚本编辑器(谷歌应用程序脚本)中调试JavaScript代码吗
- 谷歌应用程序脚本:如何在UI关闭后运行此代码
- 谷歌地图自动完成,即使使用工作代码也无法工作
- 我的jquery代码在谷歌chrome控制台中工作,而不是在保存它之后
- 谷歌'的用户令牌和授权代码
- 基于AJAX的联系人表单7事件跟踪新的谷歌分析代码
- 谷歌电子表格示例代码不起作用