5

Я создаю приложение Chrome Packaged. Я хочу поместить конфигурацию сценария, если файл конфигурации в каталоге ресурсов и при запуске хочет прочитать это по Javascript.Как прочитать файл свойств в javascript из каталога проекта?

Например

  • Проект
    • WebContent
      • index.html
      • manifest.json
      • main.js
      • ресурсов
        • config.properties

Здесь я хочу, чтобы загрузить main.js config.properties файл в начале и получить пар ключ-значение.

Кто-нибудь сделал что-то подобное?

ответ

21

Существует супер простой способ сделать это, по линии ответа таракан, но который не нуждается в 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); 
    } 
    } 
    ... 
+4

Ответ не решает проблему. У меня также есть файл свойств, используемый в стороннем коде. Я не могу переписать его на json, как вы предложили. – anakkin

+1

Исходный вопрос не имел этих ограничений.Если у вас есть другое требование, задайте другой вопрос, и мы дадим вам некоторую помощь для этого (в вашем случае, возможно, используя изолированные страницы). –

+0

Я думаю, что так и было. Возможно, вам было непонятно, что подразумевается под ["файлом свойств"] (http://en.wikipedia.org/wiki/.properties) – bacar

4

Вы можете использовать messageResource.js, простую библиотеку javascript, созданную мной для загрузки файла свойств.

1) Включите messageResource.js в свой index.html.

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

2) Вы можете получить пар ключ-значение config.properties из main.js, используя следующий код.

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

Почему я получаю «ключ» как значение вместо записанного значения в файле свойств? – sarwar026

+0

@Khan Я пробовал точный процесс, который вы упомянули в своем ответе, но у меня такая же проблема, как и sarwar026. – chaitanya89

+0

Сначала убедитесь, что config.properties доступен через URL-адрес. Перед вызовом функции messageResource.get вы должны загрузить файл свойств, используя приведенный ниже код. 'messageResource.load ('config', function() { // загрузка обратного вызова файла }); ' – Khan

Смежные вопросы