首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >将参数传递给JavaScript文件

将参数传递给JavaScript文件
EN

Stack Overflow用户
提问于 2010-02-03 17:13:23
回答 14查看 266.7K关注 0票数 180

我经常会有一个我想要使用的JavaScript文件,它需要在我的网页中定义某些变量。

所以代码是这样的:

<script type="text/javascript" src="file.js"></script>
<script type="text/javascript">
   var obj1 = "somevalue";
</script>

但我想做的是:

<script type="text/javascript" 
     src="file.js?obj1=somevalue&obj2=someothervalue"></script>

我尝试了不同的方法,最好的方法是像这样解析查询字符串:

var scriptSrc = document.getElementById("myscript").src.toLowerCase();

然后搜索我的值。

我想知道是否有其他方法可以做到这一点,而不是构建一个函数来解析我的字符串。

你们都知道其他方法吗?

EN

回答 14

Stack Overflow用户

回答已采纳

发布于 2010-02-03 17:33:21

如果可能的话,我建议不要使用全局变量。使用名称空间和OOP将参数传递给对象。

此代码属于file.js:

var MYLIBRARY = MYLIBRARY || (function(){
    var _args = {}; // private

    return {
        init : function(Args) {
            _args = Args;
            // some other initialising
        },
        helloWorld : function() {
            alert('Hello World! -' + _args[0]);
        }
    };
}());

在您的html文件中:

<script type="text/javascript" src="file.js"></script>
<script type="text/javascript">
   MYLIBRARY.init(["somevalue", 1, "controlId"]);
   MYLIBRARY.helloWorld();
</script>
票数 223
EN

Stack Overflow用户

发布于 2013-02-25 22:28:41

您可以传递具有任意属性的参数。这在所有最新的浏览器中都有效。

<script type="text/javascript" data-my_var_1="some_val_1" data-my_var_2="some_val_2" src="/js/somefile.js"></script>

在somefile.js中,您可以这样获得传递的变量值:

.

var this_js_script = $('script[src*=somefile]'); // or better regexp to get the file name..

var my_var_1 = this_js_script.attr('data-my_var_1');   
if (typeof my_var_1 === "undefined" ) {
   var my_var_1 = 'some_default_value';
}
alert(my_var_1); // to view the variable value

var my_var_2 = this_js_script.attr('data-my_var_2');   
if (typeof my_var_2 === "undefined" ) {
   var my_var_2 = 'some_default_value';
}
alert(my_var_2); // to view the variable value

...etc...

票数 88
EN

Stack Overflow用户

发布于 2013-07-16 21:21:48

我遇到的另一个想法是为<script>元素分配一个id,并将参数作为data-*属性传递。生成的<script>标记将如下所示:

<script id="helper" data-name="helper" src="helper.js"></script>

然后,脚本可以使用该id以编程方式定位自身并解析参数。给定前面的<script>标记,可以像这样检索名称:

var name = document.getElementById("helper").getAttribute("data-name");

我们得到name = helper

票数 63
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2190801

复制
相关文章

相似问题

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