我正在写一个简单的计数器,我想让这个计数器的安装非常简单的用户。我见过的最简单的计数器代码之一(对于安装它的用户)是Google Analytics code
因此,我想将主要代码存储在一个文件中,安装我的计数器的用户只需像这样设置websiteID:
<html><head><title></title></head><body>
<script type="text/javascript" src="http://counterhost.lan/tm.js">
var websiteId = 'XXXXX';
</script>
</body></html>下面是我的代码:
<script type="text/javascript" src="http://counterhost.lan/tm.js">
var page = _gat.init('new');
</script>这是我的JS文件:
(function() {
var z = '_gat';
var aa = function init(data) { alert(data); alert(z);};
function na() {
return new z.aa();
}
na();
})();我试着理解Google Analytics的javascript代码,但我做不到。有人能建议我如何在标签之间指定变量,然后在位于javascript文件中的匿名函数中读取它吗?谢谢。
发布于 2009-12-16 09:18:47
我认为您对JS对象是如何调用的感到有点困惑。
z是一个字符串,'_gat'。因为字符串没有名为aa的成员,所以不能对其调用aa()。aa是存储在局部变量中的独立函数。即使您调用了aa(),它也不会返回任何内容,因此对其结果使用new运算符是没有意义的。new只能在构造函数上调用。
我猜你的意思是这样的:
var _gat= function() {
// Private variable
//
var data= null;
// Object to put in window._gat
//
return {
// Set the private variable
//
init: function(d) {
data= d;
}
};
}();然后,调用第二个示例中的_gat.init('foo')会将该变量设置为网站ID 'foo'。这是因为_gat对象是定义在匿名函数中的返回{init: function() {...}}对象,在隐藏的data变量上保留一个引用(“闭包”)。
https://stackoverflow.com/questions/1911511
复制相似问题