Javascript - 读取文件并迭代句子

时间:2013-03-01 18:53:00

标签: javascript html file

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

我试图这样做:

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

以前工作过,但我猜它现在不是因为我不再使用文字了

1 个答案:

答案 0 :(得分:1)

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

在这种情况下我做的是:

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

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

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