概述: 我一直在研究文本文件的阅读方式,而不需要文件阅读器。我有一个名为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>
答案 0 :(得分:0)
大多数浏览器实施安全限制,阻止通过XMLHttpRequest访问file://
URI。
除非用户通过<input type="file">
明确选择,否则您应该将本地文件系统上的文件视为禁止访问。
答案 1 :(得分:0)
请改为尝试:
<button onclick="readTextFile('file:///temp.txt')">read the txt</button>