如何实现我的Javascript readTextFile?

时间:2015-08-03 19:27:38

标签: javascript

概述: 我一直在研究文本文件的阅读方式,而不需要文件阅读器。我有一个名为temp.txt的文件位于“/temp.txt”(绝对路径),我一直在使用以下javascript函数来尝试读取并打印出txt文件中的文本。

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

我使用一个按钮来调用函数onclick如下:

<button onclick="readTextFile('file:///temp.txt')">read the txt</button>

问题:当我点击按钮时没有任何反应。我已经尝试将“file:///temp.txt”直接放入我的浏览器,浏览器设法正确打开文本文件。我是否实现了javascript错误?我在Chrome中测试了这个。非常感谢你!

更新1:我修复了我的代码中的一些错误并获得了运行警报的代码,但是当它应该在警报中打印出文本文件时(alert(allText);)它什么也没打印出来。

来源: Javascript - read local text file

您可以在此处试用代码:https://jsbin.com/mucosavage/edit?html,output 只需将“/temp.txt”更改为您拥有<button onclick="readTextFile('file:///temp.txt')">read the txt</button>

的内容即可

2 个答案:

答案 0 :(得分:0)

大多数浏览器实施安全限制,阻止通过XMLHttpRequest访问file:// URI。

除非用户通过<input type="file">明确选择,否则您应该将本地文件系统上的文件视为禁止访问。

答案 1 :(得分:0)

请改为尝试:

<button onclick="readTextFile('file:///temp.txt')">read the txt</button>