Javascript从url打开txt并输出为HTML

时间:2018-05-19 10:02:03

标签: javascript

尝试让此代码在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;
}

1 个答案:

答案 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");

工作小提琴:https://jsfiddle.net/mrlew/q26xhqub/