我想在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" ) );
有什么想法吗?
答案 0 :(得分:8)
我相信这是你的答案:How to open a local disk file with Javascript?
简而言之,您看起来像这样:
<input type="file" id="files" name="file" />
HTML5允许您加载本地存储在计算机上的文件,但您无法选择它。用户必须选择他/她想要加载的文件。
想象一下当开发人员(或更好的口语,黑客)可以访问每个人的本地数据时会发生什么......
答案 1 :(得分:1)
这是一个老问题,我确信很多人都遇到了同样的问题,但是一旦JS成为一个独立的应用程序(这是一个烦人的事情,不得不破解一个人的方式,但我猜越来越多的JS应用程序将成为客户端 - 服务器无论如何)然后开始有必要组建一些支持工具。
以可维护的方式创建数据然后将其传递给我正在使用的JavaScript的一种方法是编写一个简单的脚本,该脚本获取一组内容文件并在一个大的旧data.js文件中将内容解析为JSON。然后可以包含它,并且行为与常规Javascript对象完全相同。当然,人们也可以使用JSON来存储数据,但如果您的应用程序有大量数据,那么这比简单的CSV更加冗长。
答案 2 :(得分:0)
我有这个案子的作弊码。
我将我的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);