繁体   English   中英

是否可以在非服务页面上加载带有JS / HTML5 FileReader的文件?

[英]Is it possible to load a file with JS/HTML5 FileReader on non served page?

我想在HTML5 / JS中创建一个简单的游戏,我不希望用户运行任何网络服务器或必须连接到网站。 (只是一个HTML页面)

但看起来FileReader只能用于文件类型输入。

是否可以只有两个文件:index.html和foo.txt并排读取index.html中的foo.txt,例如:

// 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" ) );

任何的想法 ?

我相信这是你的答案: 如何用Javascript打开本地磁盘文件?

简而言之,您看起来像这样:

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

HTML5允许您加载本地存储在计算机上的文件,但您无法选择它。 用户必须选择他/她想要加载的文件。

想象一下当开发人员(或更好的口语,黑客)可以访问每个人的本地数据时会发生什么......

这是一个老问题,我确信很多人遇到了同样的问题,但是一旦JS成为一个独立的应用程序(这是一个烦人的事情,不得不破解一个方法,但我想越来越多的JS应用程序无论如何都将是客户端 - 服务器)然后开始有必要将一些支持工具放在一起。

以可维护的方式创建数据然后将其传递给我正在使用的JavaScript的一种方法是编写一个简单的脚本,该脚本获取一组内容文件并将内容解析为一个大的旧data.js文件中的JSON。 然后可以包含它,并且行为与常规Javascript对象完全相同。 当然,人们也可以使用JSON来存储数据,但是如果您的应用程序有大量数据,那么这比简单的CSV更加冗长。

我有这个案子的作弊码。

我将我的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>

然后我可以在mycode.js中将我的数据作为JSON对象获取,如下所示:

var data = JSON.parse(jsondata);
alert(data.foo);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM