外部Javascript文件:传递配置参数的正确方法
External Javascript File: Correct way to pass configuration parameters
>我有一个名为test.js
的外部javascript文件,如下所示。此文件需要将用户配置参数传递给它,在本例中为 user
和show
值。
<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。
相关文章:
- 如何在router.get()方法中传递url作为参数
- 我们可以用参数对象集合而不是原始数据来调用JavaScript collection.reduce()方法吗
- 如何在扩展jQuery方法时传递参数
- 使构造函数参数具有ES6类方法的特权
- 如何将javascript变量作为参数提供给asp.net方法
- 如何确保函数/方法参数为certian类型
- 克服错误的更优雅的方法是什么:需要对象说明符.当通过JXA通过Messages发送SMS时,参数没有对象说明符
- 如何使用JavaScript's”;应用“;方法,在数组之前添加一个额外的参数
- 在嵌套递归指令中将参数传递给父控制器方法
- 理解日期对象接收参数时的getDay()方法
- sinon.js验证mock方法's带回调的参数
- 在带有参数列表的表单submit上调用一个方法
- 什么's是调用具有可变参数的函数的有效方法
- 为什么参数对象没有在控制台中显示它的方法
- 将参数传递到外部 JS 脚本的最佳方法
- 我怎么能读“;.on()"jQuery中的方法参数
- 在coffeescript中链接jquery方法和参数
- 如何在从排序方法调用参数时将其传递给回调
- 使用表单和POST方法通过Javascript获取URL参数
- PageMethods调用使用1参数成功,但在2上失败(未知web方法)