5

Sto costruendo un'app con pacchetto Chrome. Voglio mettere la configurazione dello script se un file di configurazione in una directory di risorse e all'avvio vuole leggerlo tramite Javascript.Come leggere un file di proprietà in javascript dalla directory del progetto?

Per esempio

  • Progetto
    • WebContent
      • index.html
      • manifest.json
      • main.js
      • risorse
        • config.properties

qui voglio main.js caricare il file config.properties in principio e ottenere coppie chiave-valore.

Qualcuno ha mai fatto qualcosa del genere?

risposta

21

C'è un modo super semplice per fare questo, lungo le linee di risposta di sowbug, ma che non ha bisogno di leggere XHR o un file.

Fase 1. Crea una risorsa/config.js in questo modo:

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

Fase 2. Integrare questo nel vostro index.html:

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

Fase 3. Accesso al tuo opzioni direttamente dal tuo main.js (o da qualsiasi luogo):

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

La risposta non risolve il problema. Ho anche un file delle proprietà utilizzato nel codice di terze parti. Non posso riscriverlo a JSON come suggerivi. – anakkin

+1

La domanda originale non aveva queste restrizioni.Se hai un requisito diverso, fai una domanda diversa e ti daremo un aiuto per farlo (nel tuo caso, probabilmente usando le pagine sandbox). –

+0

Penso di sì. Forse non ti era chiaro cosa intendesse per un ["file delle proprietà"] (http://en.wikipedia.org/wiki/.properties) – bacar

4

È possibile utilizzare messageResource.js, una semplice libreria javascript creata da me per il caricamento del file delle proprietà.

1) Include messageResource.js nel tuo index.html.

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

2) È possibile ottenere coppie chiave-valore di config.properties dal main.js utilizzando il seguente codice.

// 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

perché sto ottenendo "chiave" come valore invece del valore scritto nel file delle proprietà? – sarwar026

+0

@Khan Ho provato il processo esatto che hai menzionato nella tua risposta, ma sto avendo lo stesso problema di sarwar026. – chaitanya89

+0

Prima assicurati che config.properties sia accessibile tramite un URL. Prima di chiamare la funzione messageResource.get devi caricare il file delle proprietà usando il codice seguente. 'messageResource.load ('config', function() { // load callback file }); ' – Khan