Javascript 读取本地文本文件函数不返回字符串类型,而是返回void类型
我最近在学习JavaScript,发现了这个问题,我的readTextFile函数如下:Javascript 读取本地文本文件函数不返回字符串类型,而是返回void类型,javascript,Javascript,我最近在学习JavaScript,发现了这个问题,我的readTextFile函数如下: function readTextFile(file) { var rawFile = new XMLHttpRequest(); rawFile.open("GET", file, false); rawFile.onreadystatechange = function () { if(rawFile.readyState === 4) {
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);
return allText;
}
}
};
rawFile.send(null);
}
和我的加载功能:
window.onload = function(){
var fileUrl = "input.txt";
var text = "";
text = String(readTextFile(fileUrl));
window.alert(text);
};
输出是“未定义的”。我的“input.txt”文件与js文件位于同一目录中。请帮忙!非常感谢。
readTextFile
方法有一个异步ajax调用,它有一个回调处理程序onreadystatechange
,不会以顺序方式调用
此方法readTextFile没有返回此回调方法之外的任何值,因此您在这里得到了未定义的text=String(readTextFile(fileUrl))代码>
您需要在onreadystatechange
回调方法中随时提醒响应值
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);
}
readTextFile
方法具有一个异步ajax调用,该调用具有一个回调处理程序onreadystatechange
,该回调处理程序不会以顺序方式调用
此方法readTextFile没有返回此回调方法之外的任何值,因此您在这里得到了未定义的text=String(readTextFile(fileUrl))代码>
您需要在onreadystatechange
回调方法中随时提醒响应值
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);
}