我试图通过创建一个函数来编写一个简单的文本文件阅读器,该函数接收文件的路径并将每行文本转换为char数组,但它不起作用 .
function readTextFile() {
var rawFile = new XMLHttpRequest();
rawFile.open("GET", "testing.txt", true);
rawFile.onreadystatechange = function() {
if (rawFile.readyState === 4) {
var allText = rawFile.responseText;
document.getElementById("textSection").innerHTML = allText;
}
}
rawFile.send();
}
这里出了什么问题?
从previous revision稍微更改代码后,这似乎仍然无效,现在它给了我一个 XMLHttpRequest
异常101 .
我已经在Firefox上测试了它并且它可以工作,但是在谷歌Chrome中它不会工作并且它一直给我一个例外101.我如何才能让它不仅可以用于Firefox,还可以用于其他浏览器(尤其是Chrome) )?
10 回答
你需要检查状态0(当使用
XMLHttpRequest
本地加载文件时,你不要't get a status returned because it'来自Webserver
)并在您的文件名中指定
file://
:访问Javascripture!然后转到 readAsText 部分并尝试示例 . 您将能够知道 FileReader 的 readAsText 功能如何工作 .
在javascript中引入fetch api之后,读取文件内容变得更加简单 .
reading a text file
reading a json file
更新30/07/2018(免责声明):
尝试创建两个函数:
其他例子 - 我的读者使用FileReader类
乔恩佩里曼,
是js可以读取本地文件(请参阅FileReader()),但不能自动读取:用户必须使用html
<input type=file>
将文件或文件列表传递给脚本 .然后使用js可以处理(示例视图)文件或文件列表,它们的一些属性以及文件或文件内容 .
出于安全原因,js不能做的是自动访问(无需用户输入)到他的计算机的文件系统 .
要允许js自动访问本地fs,需要创建一个内部没有js的html文件,而是创建一个hta文档 .
一个hta文件里面可以包含js或vbs .
但是hta可执行文件仅适用于Windows系统 .
这是标准的浏览器行为 .
google chrome也在fs api工作,更多信息来自:http://www.html5rocks.com/en/tutorials/file/filesystem/
很可能你已经尝试过,输入“false”如下:
这可能有所帮助,