Можно ли загрузить файл с помощью JS / HTML5 FileReader на необслуживаемую страницу? - PullRequest
10 голосов
/ 28 февраля 2012

Я хочу создать простую игру на HTML5 / JS, и я не хочу, чтобы пользователь запускал какой-либо веб-сервер или должен был подключаться к веб-сайту. (просто HTML-страница)

Но, похоже, FileReader можно использовать только для входных данных типа файлов.

Возможно ли иметь только два файла: index.html и foo.txt рядом и читать foo.txt из index.html примерно так:

// No input needed, I know waht I want to read
var my_file = new File("foo.txt");
var reader = new FileReader();
alert( reader.readAstext( my_file, "UTF-8" ) );

Есть идеи?

Ответы [ 3 ]

8 голосов
/ 28 февраля 2012

Я полагаю, что это ваш ответ: Как открыть файл локального диска с помощью Javascript?

Короче, вы выглядите примерно так:

<input type="file" id="files" name="file" />

HTML5 позволяет загружать файлы, которые хранятся локально на компьютере, но вы не можете выбрать его.Пользователь должен выбрать файл, который он / она хочет загрузить.

Представьте себе, что произойдет, когда разработчики (или, лучше говоря, хакеры) будут иметь доступ ко всем локальным данным ...

1 голос
/ 22 марта 2013

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

Один из способов создания данных в удобном для обслуживания виде и их передачи в JavaScript, который я использую, - этонаписать простой скрипт, который принимает набор файлов содержимого и анализирует содержимое в JSON в большом старом файле data.js.Это может быть включено и вести себя точно так же, как и обычные объекты Javascript.Конечно, можно также использовать JSON для хранения данных в первую очередь, но это гораздо более многословно, чем что-то вроде простого CSV, если у вас много данных для вашего приложения.

0 голосов
/ 14 декабря 2017

У меня есть чит-код для этого случая.

Я назвал свой JSON-файл как .js: jsonfile.js, который содержит мои данные json в виде строковой переменной:

var jsondata = '{ "foo" : "bar" }';

В моем index.html я включаю его перед моими .js с кодом:

<html> 
<head> 
<script type="text/javascript" src="mydata/jsonfile.js"></script>
<script type="text/javascript" src="js/mycode.js"></script>

Затем я могу получить свои данные в виде объекта JSON в mycode.js следующим образом:

var data = JSON.parse(jsondata);
alert(data.foo);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...