首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何从项目目录中读取javascript中的属性文件?

如何从项目目录中读取javascript中的属性文件?
EN

Stack Overflow用户
提问于 2013-10-11 13:36:45
回答 5查看 106.9K关注 0票数 16

我正在构建一个Chrome打包的应用程序。我想把脚本配置放在一个资源目录中的配置文件中,并在启动时通过Javascript读取它。

例如

  • 项目
    • WebContent

在这里,我希望main.js在一开始就加载config.properties文件,并获得键值对。

有没有人做过这样的事情?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2013-10-14 08:58:21

有一种非常简单的方法可以做到这一点,就像sowbug的答案一样,但它不需要任何XHR或文件读取。

步骤1.像这样创建resource/config.js:

代码语言:javascript
复制
gOptions = {
  // This can have nested stuff, arrays, etc.
  color: 'red',
  size: 'big',
  enabled: true,
  count: 5
}

步骤2.将此文件包含在index.html中:

代码语言:javascript
复制
<!doctype html>
<head>
  <script src="resource/config.js"></script>
  ...

步骤3.直接从main.js (或任何地方)访问您的选项:

代码语言:javascript
复制
  ...
  if (gOptions.enabled) {
    for (var i = 0; i < gOptions.count; i++) {
      console.log(gOptions.color);
    }
  }
  ...
票数 37
EN

Stack Overflow用户

发布于 2014-08-28 16:42:33

您可以使用messageResource.js,这是我创建的一个简单的javascript库,用于加载属性文件。

1)在您的index.html中包含messageResource.js。

代码语言:javascript
复制
<script src="messageResource.min.js"></script>    

2)您可以使用以下代码从main.js获取config.properties的键值对。

代码语言:javascript
复制
// initialize messageResource.js  
messageResource.init({
  // path to directory containing config.properties
  filePath : 'resource'
});

// load config.properties file
messageResource.load('config', function(){ 
  // load file callback 

  // get value corresponding  to a key from config.properties  
  var value = messageResource.get('key', 'config');
}); 
票数 7
EN

Stack Overflow用户

发布于 2020-01-10 05:12:49

我知道这在很久以前就被接受了,但从来没有一个真正的“原样”的.properties答案。只有不使用它,而是将其转换为.js。显然,这将是更可取的,但并不总是可行的。如果这是不可能的,比如说在一个Java应用程序中,它在某个地方也有JavaScript,并且.properties文件经常被Java使用并由JavaScript共享以避免重复,那么实际的.properties答案将是最好的。

如果你使用的是ES6,React,Vue,Angular等,那么你可以导入它。假设它是一个URL.properties文件中的URL列表。即使在JavaScript中也不需要指定路径,但需要一个唯一的名称。

代码语言:javascript
复制
import URL from 'URL';

对于带有点的键,语法可能比较棘手,例如widgetAPI.dev。您不能简单地将其作为URL.widgetAPI.dev调用。因为一旦属性文件(内容)到达JavaScript,它就是一个对象,所以您可以像引用任何对象键一样引用它,例如:

代码语言:javascript
复制
console.log(URL['widgetAPI.dev'])

如果您不是在ES6中,那么jQuery有一些库,而且前面已经提到过无处不在的messageResource。

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

https://stackoverflow.com/questions/19310951

复制
相关文章

相似问题

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