我正在尝试读取本地文本文件来执行计算音节,字符等功能。
我试图这样做:
var txtFile = new XMLHttpRequest();
txtFile.open("GET", "file://path/to/my/file.txt", true);
txtFile.onreadystatechange = function() {
if (txtFile.readyState === 4) { // Makes sure the document is ready to parse.
if (txtFile.status === 200) { // Makes sure it's found the file.
allText = txtFile.responseText;
//lines = txtFile.responseText.split("\r\n"); // Will separate each line into an array
} //"\r\n"
}
}
当我尝试将'txtFile'记录到命令行时打印[ObjectHtmlRequest],我如何查看我正在加载的内容并因此迭代它?
当我尝试执行这段代码时,我也收到错误消息
var text = txtFile
//$(this).val();
//document.text_input.my_text.value = newtext;
var words = new Array(text.replace(/\s/g, ' ').split(' '));
以前工作过,但我猜它现在不是因为我不再使用文字了
答案 0 :(得分:1)
大多数浏览器不允许JavaScript使用本地文件系统。 Chrome肯定不会,我不确定Firefox和其他人。
在这种情况下我做的是:
如果要读取的文件是静态的,请使用基于本地目录的本地Web服务器。我通常以python -mhttp.server
(Python 3)或python -mSimpleHTTPServer
(Python 2)开始。
如果您想让用户选择该文件,请使用最新的 HTML5文件API 。更多信息here。
编辑:嗯,我说的并不完全正确。 Chrome允许您使用本地文件,但您必须使用特殊开关(--allow-file-access-from-files
)在命令行启动它,坦率地说,这是一个麻烦,只是真正用于开发。生产中的任何东西都不要依赖它!