无法生成javascript加载.txt文件,以加载链接

时间:2017-06-16 20:05:00

标签: javascript html

我已经制作了一个功能,可以带你到一个随机链接,但我现在有很多链接,并想知道如何让javascript读取一个包含所有链接的文本文件。

我现在的代码不起作用,我尝试了其他类似的方法,但没有任何作用。

<script>
        var sites = [
            function readTextFile("file:///Nicklas Behrend/Desktop/links.txt");
            {
                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);
            }
        ];

        function randomSite() {
            var i = parseInt(Math.random() * sites.length);
            location.href = sites[i];
        }
    </script>

1 个答案:

答案 0 :(得分:1)

看起来你有语法错误。它应该是这样的:

var sites = [];
function readTextFile(file, callback) {
  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);
        callback(allText);
      }
    }
  }
  rawFile.send(null);
}

readTextFile("file:///Nicklas Behrend/Desktop/links.txt", filesText =>{
    sites = filesText.split('\n');
});

function randomSite() {
    var i = parseInt(Math.random() * sites.length);
    location.href = sites[i];
 }

您试图同时声明并运行该功能,这是完全错误的。此外,XMLHttpRequest()是异步的,因此您必须有一个将返回文本的回调。

一旦你拥有了它,你就可以将文本拆分成一个站点数组(我假设它们在这种情况下是换行符分隔的)。