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

时间:2013-10-11 05:36:45

标签: javascript jquery filereader google-chrome-app properties-file

我正在构建Chrome打包应用。如果资源目录和启动时的配置文件想要通过Javascript读取它,我想放置脚本配置。

例如

  • 项目
    • 的WebContent
      • 的index.html
      • 的manifest.json
      • main.js
      • 资源
        • config.properties

这里我希望main.js在开头加载config.properties文件并获取键值对。

有人做过这样的事吗?

5 个答案:

答案 0 :(得分:30)

根据sowbug的回答,有一种超级简单的方法可以做到这一点,但不需要任何XHR或文件读取。

第1步。 像这样创建资源/ config.js:

gOptions = {
  // This can have nested stuff, arrays, etc.
  color: 'red',
  size: 'big',
  enabled: true,
  count: 5
}

第2步。 在index.html中包含此文件:

<!doctype html>
<head>
  <script src="resource/config.js"></script>
  ...

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

  ...
  if (gOptions.enabled) {
    for (var i = 0; i < gOptions.count; i++) {
      console.log(gOptions.color);
    }
  }
  ...

答案 1 :(得分:6)

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

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

<script src="messageResource.min.js"></script>    

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

// 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');
}); 

答案 2 :(得分:2)

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

如果您使用的是ES6,React,Vue,Angular等,则可以将其导入。假设这是URL.properties文件中的URL列表。即使在JavaScript中也无需指定路径,但需要唯一的名称。

import URL from 'URL';

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

console.log(URL['widgetAPI.dev'])

如果您不在ES6中,则jQuery拥有库,并且始终已经提到了无处不在的messageResource。

答案 3 :(得分:-1)

将文件结构化为JSON。使用File API或XHR将其读入字符串。然后是JSON.parse(字符串)。

答案 4 :(得分:-1)

使用JSF非常简单,但每次需要从JavaScript读取新参数时,都必须修改HTML文件。 项目目录中的属性文件( config.properties )具有以下参数作为键值对。

parameter.key=parameter.value

属性文件名在 faces-config.xml

中配置
<application>
    <resource-bundle>
        <base-name>com.example.project.properties.config</base-name>
        <var>configuration</var>
    </resource-bundle>
</application>

因此,您可以在HTML文件中的隐藏输入中使用属性值。

<h:inputHidden id="parameter_key" value="#{configuration['parameter.key']}" />

从JavaScript函数中,使用以下行读取参数值。

var parameter_value = document.getElementById("parameter_key").value;

享受你的一天...... !!!