首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将参数传递给匿名Javascript函数?

如何将参数传递给匿名Javascript函数?
EN

Stack Overflow用户
提问于 2009-12-16 08:34:46
回答 6查看 576关注 0票数 1

我正在写一个简单的计数器,我想让这个计数器的安装非常简单的用户。我见过的最简单的计数器代码之一(对于安装它的用户)是Google Analytics code

因此,我想将主要代码存储在一个文件中,安装我的计数器的用户只需像这样设置websiteID:

代码语言:javascript
复制
<html><head><title></title></head><body>
<script type="text/javascript" src="http://counterhost.lan/tm.js">
var websiteId = 'XXXXX';
</script>
</body></html>

下面是我的代码:

代码语言:javascript
复制
<script type="text/javascript" src="http://counterhost.lan/tm.js">
var page = _gat.init('new');
</script>

这是我的JS文件:

代码语言:javascript
复制
(function() {
    var z = '_gat';
    var aa = function init(data) { alert(data); alert(z);};

    function na() {
        return new z.aa();
    }
    na();
})();

我试着理解Google Analytics的javascript代码,但我做不到。有人能建议我如何在标签之间指定变量,然后在位于javascript文件中的匿名函数中读取它吗?谢谢。

EN

回答 6

Stack Overflow用户

发布于 2009-12-16 08:45:10

在您的示例中,websiteId是一个全局变量。因此,它可以在任何地方访问,包括匿名函数,除非存在同名的局部变量

代码语言:javascript
复制
<script> var websiteId = "something"; </script>

在页面后面或包含的js文件中...

代码语言:javascript
复制
(function() {
    alert(websiteId); //this should work
})();
票数 2
EN

Stack Overflow用户

发布于 2009-12-16 09:23:56

谁能建议我如何在标签之间指定变量,然后读取它……

如果您的标记同时具有SRC属性和JS内容,则不会。

代码语言:javascript
复制
<script type="text/javascript" src="http:/x.com/x.js"></script>

。。不同于,

代码语言:javascript
复制
<script type="text/javascript">
    var x = 1;
</script>

Dojo是一个可以选择将JS变量添加到脚本标记的框架。因此,如果您使用Dojo,可以通过以下方式将变量添加到全局djConfig散列中:

代码语言:javascript
复制
<script type="text/javascript" src="mxclientsystem/dojo/dojo.js"
    djConfig="
    usePlainJson: true,
    parseOnLoad: true
">
</script>

Dojo通过遍历脚本标记并计算自定义djConfig属性来实现这一点。

然而,这并不能解决您的问题。

您确实需要两个脚本标记。一种说法是,

代码语言:javascript
复制
<script type="text/javascript">
    var websiteId = '123456';
</script>

它将设置全局变量websiteId和第二个变量,

代码语言:javascript
复制
<script type="text/javascript" src="http:/x.com/myreporter.js"></script>

它可以从任何地方加载,并读取websiteId变量,然后,我假设,将其报告回来。

票数 2
EN

Stack Overflow用户

发布于 2009-12-16 10:38:44

您可以将变量传递给匿名函数,如下所示:

代码语言:javascript
复制
(function(arg1, arg2, arg3) {
    alert(arg1);
    alert(arg2);
    alert(arg3);
})("let's", "go", "redsox");

// will alert "let's", then "go", then "redsox" :)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1911511

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档