5

私はChromeパッケージアプリケーションを構築しています。リソースディレクトリの設定ファイルと起動時にJavascriptで設定ファイルを読みたい場合は、スクリプトの設定をしたいと思います。例えばプロジェクトディレクトリからjavascriptのプロパティファイルを読み取るには?

  • プロジェクト
    • のWebContent
      • index.htmlを
      • manifest.jsonを
      • main.js
      • リソース
        • のconfig.properties

は、ここで私は、main.jsが最初にconfig.propertiesファイルをロードし、キーと値のペアを取得したいです。

誰もこのようなことをしたことがありますか?

答えて

21

あり、これを行うには、スーパー簡単な方法はsowbugの答えの線に沿って、ですが、任意のXHRやファイルの読み取りを必要としません。

ステップ1. はそうのようなリソース/ config.jsの作成:

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

ステップ3. アクセスします:

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

ステップ2. はあなたのindex.htmlでこのファイルをインクルードmain.js(または任意の場所)からの直接のオプション:

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

答えが問題を解決しません。私はまた、サードパーティのコードで使用されるプロパティファイルを持っています。あなたが提案したようにjsonに書き直すことはできません。 – anakkin

+1

元の質問にはこれらの制限はありませんでした。異なる要件がある場合は、別の質問をしてください。その場合は、サンドボックスページを使用している可能性があります。 –

+0

そう思います。おそらく、[properties files](http://en.wikipedia.org/wiki/.properties)の意味がわからないかもしれません – bacar

4

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

なぜ私はプロパティファイルに書かれた値の代わりに 'key'を値として取得していますか? – sarwar026

+0

@Khanあなたの答えで述べた正確なプロセスを試しましたが、私はsarwar026と同じ問題があります。 – chaitanya89

+0

まず、config.propertiesがURL経由でアクセス可能であることを確認します。 messageResource.get関数を呼び出す前に、以下のコードを使用してプロパティファイルをロードする必要があります。 'messageResource.load( 'config'、function(){ //ファイルコールバックをロード }); ' – Khan

関連する問題