У меня есть небольшое web-приложение с использованием JS. Она лежит локально и должно точно так же использоваться локально. Без PHP и прочего.
В локальный файл (лежит в той же папке что и index.html) записываются данные. Сами данные - это всего лишь одно duble число (1 строка и все).
Как мне, в JS коде считать это число в переменную? ajax, jquery и не помогает. Мне надо чтобы я вывел эту переменную в alert()
, а мне выводит либо [Object object]
либо undefined
. Перепробовал уже кучу способов из гугла - ничего не помогло.
UP:
url: file:///C:/Users/ROCKer/Desktop/test/index.html
var t;
$.ajax({
type: "GET",
url: "1.txt",
success: function(text) {
t = text;
},
error: function() {
// An error occurred
}
});
alert(t);
var t = '';
// мне больше нравится так
fetch('./foo.txt')
.then(res => res.text())
.then(data => {
t = data;
alert(t);
})
.catch(err => {
throw err;
});
// но можно и так
$.ajax({
type: 'GET',
url: './foo.txt',
dataType: 'text',
mimeType: 'application/text',
success: function(text) {
t = text;
alert(t);
},
error: function(err) {
throw err;
}
});
Насколько я помню, JS не позволяет работать непосредственно с файлами в файловой системе, как другие ЯП (Java, C++, C#) поскольку твой код выполняет браузер и только он сможет достучаться до файлов (и то не факт) Есть документация И отличная статья с примерами Основная идея в том, что ты в своем index.html файле готовишь форму выбора и загрузки файла и уже посредством JS читаешь информацию из файла.
Есть другой способ получения информации, это запрос на сервер, который вернет тебе этот файл, но ты не хочешь использовать PHP и прочее :)
Надеюсь помог.
Как сказал @Grundy
если можно менять формат данных в файле, то можно загружать его как js код создавая элемент script, и передавая ему в src путь к файлу. В файле должен быть допустимый js код, например var a = 10, в этом случае после загрузки и выполнении скрипта можно будет обратиться к переменной a и получить значение 10
.........text.txt
var x = 10;
.................
....... основной js
var fn; // переменная куда считаем наш файл
// функция для чтения js внутри другого js
function include(url) {
var script = document.createElement('script');
script.src = url;
document.getElementsByTagName('head')[0].appendChild(script);
}
function xyz(){
include("text.txt"); // подключим js и возьмем из него нашу переменную
return x;
}
function моя_функция_которая_постоянно_должна_считывать_новые_данные(){
.......
xyz()
..........
}
А если сохранять данные в формате json и потом парсить их:
var url = "file.json";
var xhr = new XMLHttpRequest();
xhr.open('GET', url);
xhr.send();
xhr.onreadystatechange = function(){
if (xhr.readyState == 4) {
if (xhr.status == 200) {
var result = JSON.parse(xhr.responseText);
}
}
}
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Виртуальный выделенный сервер (VDS) становится отличным выбором
помогите осуществить такой механизмНашел вот такой пример jsfiddle
Проблема возникает из-за того, что получение данных из бд происходит медленно, без async\await получается, что чтение из бд слишком медленное
Необходимо задать тип вводимых данных - число, но не срабатываетКак исправить?
Пытаюсь сделать анимацию перехода на другую страницу следующим образом: Для начала я обернул в HashRouter мой контейнер, который меняется при...