Включить файл.txt в существующую функцию JavaScript
У меня есть эта функция JavaScript, которая требует некоторые переменные, которые я хотел бы вызвать из внешнего файла.txt:
<script language="JavaScript">
StartCountDown("1070","08/21/2014 15:32 +0300")
StartCountDown("1071","08/21/2014 16:00 +0300")
StartCountDown("1072","08/21/2014 16:00 +0300")
... rest of the function
</script>
было бы лучше, если
<script language="JavaScript">
**include stuff from variables.txt here**
... rest of the function
</script>
Есть какой-либо способ сделать это? Благодарю.
1 ответ
Вариант 1: загрузить текст в переменную
Вы можете загрузить файл.txt синхронно через javascript/ajax. имейте в виду, что выполнение вашего кода JavaScript будет ждать в этот момент, пока файл не будет загружен.
var request = new XMLHttpRequest();
request.open('GET', 'text.txt', false);
request.send();
var textfileContent = request.responseText;
Вы также можете сделать это асинхронно. хотя в этом случае вашей программной логике придется ждать загрузки файла:
var request = new XMLHttpRequest();
request.open('GET', 'text.txt');
request.onreadystatechange = function() {
if (request.readyState === 4) {
var textfileContent = request.responseText;
// continue your program flow here
}
}
request.send();
выполнить JavaScript из переменной (не рекомендуется)
также возможно, чтобы код JavaScript оценивался из строки. хотя этот метод не рекомендуется:
eval(textfileContent);
Вариант 2: включить JavaScript через скрипт
если вы хотите загрузить javascript, другое решение заключается в добавлении тега script в dom:
var script = document.createElement('script');
script.type = 'text/javascript';
script.src = "text.txt";
document.body.appendChild(script);
Вариант 3: используйте json для инициализации переменных (лучше всего подходит для ваших нужд)
если вы просто загружаете значения переменных, json может иметь для вас больше смысла. создайте текстовый файл так:
[
["1070","08/21/2014 15:32 +0300"],
["1071","08/21/2014 16:00 +0300"],
["1072","08/21/2014 16:00 +0300"]
]
читать о синтаксисе JSON здесь
чем загрузить файл JSON, как это:
var request = new XMLHttpRequest();
request.open("GET", "json.txt", false);
request.send(null);
var data = JSON.parse(request.responseText);
ваши данные сейчас в массиве. Вы можете захотеть получить доступ к значениям в цикле:
for ( var i = 0; i < data.length; i++ ) {
var entry = data[i];
var year = entry[0];
var date = entry[1];
StartCountDown(year, date);
}
Вариант 4: объединить до выполнения
если у вас есть настройка препроцессора, вы можете использовать ее для объединения файлов. в качестве альтернативы инструмент командной строки Unix cat
может легко объединить два файла:
cat file1.txt file2.txt > new.txt