我正在写一个简单的计数器,我想让这个计数器的安装非常简单的用户。我见过的最简单的计数器代码之一(对于安装它的用户)是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 08:45:10
在您的示例中,websiteId是一个全局变量。因此,它可以在任何地方访问,包括匿名函数,除非存在同名的局部变量
<script> var websiteId = "something"; </script>在页面后面或包含的js文件中...
(function() {
alert(websiteId); //this should work
})();发布于 2009-12-16 09:23:56
谁能建议我如何在标签之间指定变量,然后读取它……
如果您的标记同时具有SRC属性和JS内容,则不会。
<script type="text/javascript" src="http:/x.com/x.js"></script>。。不同于,
<script type="text/javascript">
var x = 1;
</script>Dojo是一个可以选择将JS变量添加到脚本标记的框架。因此,如果您使用Dojo,可以通过以下方式将变量添加到全局djConfig散列中:
<script type="text/javascript" src="mxclientsystem/dojo/dojo.js"
djConfig="
usePlainJson: true,
parseOnLoad: true
">
</script>Dojo通过遍历脚本标记并计算自定义djConfig属性来实现这一点。
然而,这并不能解决您的问题。
您确实需要两个脚本标记。一种说法是,
<script type="text/javascript">
var websiteId = '123456';
</script>它将设置全局变量websiteId和第二个变量,
<script type="text/javascript" src="http:/x.com/myreporter.js"></script>它可以从任何地方加载,并读取websiteId变量,然后,我假设,将其报告回来。
发布于 2009-12-16 10:38:44
您可以将变量传递给匿名函数,如下所示:
(function(arg1, arg2, arg3) {
alert(arg1);
alert(arg2);
alert(arg3);
})("let's", "go", "redsox");
// will alert "let's", then "go", then "redsox" :)https://stackoverflow.com/questions/1911511
复制相似问题