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

D.S*_*D.S 11 javascript jquery filereader properties-file google-chrome-app

我正在构建Chrome打包应用程序.如果配置文件在资源目录中并且在启动时想要通过Javascript读取它,我想放置脚本配置.

例如

  • 项目
    • 网页内容
      • 的index.html
      • 的manifest.json
      • main.js
      • 资源
        • config.properties

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

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

Ben*_*lls 33

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

步骤1.创建资源/ config.js,如下所示:

gOptions = {
  // This can have nested stuff, arrays, etc.
  color: 'red',
  size: 'big',
  enabled: true,
  count: 5
}
Run Code Online (Sandbox Code Playgroud)

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

<!doctype html>
<head>
  <script src="resource/config.js"></script>
  ...
Run Code Online (Sandbox Code Playgroud)

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

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

  • 答案并没有解决问题.我还有第三方代码中使用的属性文件.我不能像你建议的那样把它改写成json. (6认同)
  • 问题是关于`properties`文件而不是json. (6认同)

Kha*_*han 6

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

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

<script src="messageResource.min.js"></script>    
Run Code Online (Sandbox Code Playgroud)

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');
}); 
Run Code Online (Sandbox Code Playgroud)

  • 为什么我将`key`作为值而不是属性文件中的书写值? (2认同)