外部Javascript文件:传递配置参数的正确方法

时间:2014-04-01 09:07:42

标签: javascript

我有一个名为test.js的外部JavaScript文件,如下所示。此文件需要传递给它的用户配置参数,在本例中为usershow值。

<script type="text/javascript">
<!--//
  user = '123';
  show = 'appts';
//-->
</script>
<script src="{{ STATIC_URL }}js/widgets/test.js" type="text/javascript"></script>

以上是我如何告诉第三方将脚本添加到他们自己的网站。但是,我不禁觉得这是传递这些价值的坏方法,即冲突。

我的方式是否可以接受?还有更好的方法吗?

3 个答案:

答案 0 :(得分:2)

一个简单的答案是在您的变量名称上添加一些内容,例如:

<script type="text/javascript">
<!--//
  widget_test_12331_user = '123';
  widget_test_12331_show = 'appts';
//-->
</script>

答案 1 :(得分:2)

您可以坚持命名空间约定“还原域”:

<script type="text/javascript">
<!--//
if (!org) var org = {};
if (!org.mylibrary_domain) org.mylibrary_domain = {};
if (!org.mylibrary_domain.settings) org.mylibrary_domain.settings = {};
org.mylibrary_domain.settings.user = '123';
org.mylibrary_domain.settings.show = 'appts';
//-->
</script>
<script src="{{ STATIC_URL }}js/widgets/test.js" type="text/javascript"></script>

答案 2 :(得分:2)

您可以使用javascript命名空间(How do I declare a namespace in JavaScript?)的概念。

所以你可以添加另一个名为testConfig.js的js文件,其中包括:

var yourAppNamespaceTestConfig = {
    user: function(){ return '123' ;} ,
    show: function(){ return 'appts';}
};

然后在test.js中,您可以通过以下方式阅读配置:

var user = yourAppNamespaceTestConfig.user();
var show = yourAppNamespaceTestConfig.show();

如果您更关注OO,请尝试Coffeescript(http://coffeescript.org/)。他们将OO引入您的javascript。