一尘不染

JavaScript 如何读取本地文本文件?

javascript

我正在尝试通过创建一个接受文件路径并将文本的每一行转换为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();
}

这是怎么了?

从先前的版本中稍稍更改了代码后,这似乎仍然不起作用,现在给了我一个XMLHttpRequest例外101。

我已经在Firefox上对其进行了测试,并且可以工作,但是在Google
Chrome中它却无法工作,并且一直给我一个异常101。如何使它不仅可以在Firefox上而且还可以在其他浏览器(尤其是Chrome)上运行)?


阅读 4595

收藏
2020-04-23

共1个答案

一尘不染

您需要检查状态0(例如,使用本地加载文件时XMLHttpRequest,您不会得到返回的状态,因为它不是来自Webserver

function readTextFile(file)
{
    var rawFile = new XMLHttpRequest();
    rawFile.open("GET", file, false);
    rawFile.onreadystatechange = function ()
    {
        if(rawFile.readyState === 4)
        {
            if(rawFile.status === 200 || rawFile.status == 0)
            {
                var allText = rawFile.responseText;
                alert(allText);
            }
        }
    }
    rawFile.send(null);
}

file://在文件名中指定:

readTextFile("file:///C:/your/path/to/file.txt");
2020-04-23