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

External Javascript File: Correct way to pass configuration parameters

本文关键字:参数 方法 配置 Javascript 文件 外部      更新时间:2023-09-26

>我有一个名为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>

以上是我目前告诉第三方将脚本添加到他们自己的网站的方式。但是,我不禁觉得这是传递这些价值观(即冲突)的糟糕方式。

我这样做的方式可以接受吗?有没有更好的方法?

一个简单的答案是在你的变量名称后面附加一些东西,例如:

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

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

<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>

你可以使用 javascript 命名空间的概念(如何在 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。