1

我正在尝试读取本地文本文件以执行计算音节、字符等功能,

我试图通过这样做来做到这一点:

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(' '));

以前有效,但我猜现在不是,因为我不再使用文本

4

1 回答 1

1

大多数浏览器不允许 JavaScript 使用本地文件系统。Chrome 肯定不会,我不确定 Firefox 和其他。

在这种情况下,我要做的是:

  • 如果您要读取的文件是静态的,请使用基于本地目录的本地 Web 服务器。我通常从python -mhttp.server(Python 3) 或python -mSimpleHTTPServer(Python 2) 开始。

  • 如果您想让用户选择文件,请使用最新的HTML5 File API 。更多信息在这里

编辑:嗯,我说的并不完全正确。Chrome 允许您使用本地文件,但您必须在命令行上使用特殊的开关 ( --allow-file-access-from-files) 启动它,坦率地说,这很麻烦,而且仅用于开发。不要在生产中依赖它!

于 2013-03-01T21:16:38.480 回答