尝试让此代码在Chrome应用中运行,但它没有显示任何结果。我只想将HTML代码外部传输到网页中。
document.getElementById("Text").innerHTML = readTextFile("https://dl.dropboxusercontent.com/s/ha5x038iurobx6x/Message.txt");
function readTextFile(file)
{
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;
}
}
}
rawFile.send();
return rawFile.responseText;
}
答案 0 :(得分:2)
XMLHttpRequest.send()方法是异步的。因此,仅在获取结果时才会调用onreadystatechange
回调。
return
函数中的readTextFile
语句会立即执行(返回null或空),同时仍在提取请求。
我更改了您的代码以演示它应该如何工作(建议):
function setText(allText) {
document.getElementById("Text").innerHTML = allText;
}
function readTextFile(file)
{
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;
setText(allText);
}
}
}
rawFile.send();
}
readTextFile("https://dl.dropboxusercontent.com/s/ha5x038iurobx6x/Message.txt");