您可以从JavaScript中读取文件的最简单方法是什么?

时间:2012-10-29 15:45:36

标签: javascript file-io

我知道这个问题之前已经问过,但我还在学习JavaScript,而且我很难看到其他人的答案的复杂性。我在与读取JavaScript的HTML文件相同的目录中有一个文本文件,该文本文件中只有一行。我希望能够从文本文件中获取该行并将其放入字符串中。什么是一种非常简单的方法,可以在FF,IE和Chrome中运行,除了浏览器选择之外,它是否相当普遍有效?再一次,我知道之前已经问过这个问题,但是我在这里从其他地方看到的示例代码的复杂性中挑选真正的方法时遇到了麻烦。谢谢!

3 个答案:

答案 0 :(得分:3)

使用jQuery get方法http://api.jquery.com/jQuery.get/

$.get(url).success(function(data, status, response) {
    var text = response.responseText;
    // use your one line text stored in text variable here
}

url 变量可以是相对的,因此您可以将文本文件名放在那里。例如,如果您的文本文件被调用" mytext.txt"并在访问它的脚本的同一目录中输入:

  $.get("mytext.txt").success(function(data, status, response) {
        var text = response.responseText;
        // use your one line text stored in text variable here
    }

请注意,此答案假定您使用http访问文本文件,并且脚本和文本文件位于同一个域中。

答案 1 :(得分:2)

这很棘手,因为默认情况下大多数浏览器不允许JS从计算机的文件系统本地打开文件。您可以使用ajax从Web服务器请求文本文件。要做到这一点,我会推荐jQuery,因为它将是非常有效的"普遍有效"就像你说的那样。执行ajax调用时,请求必须遵循相同的源策略。在外行人看来,如果您在www.mysite.com,您可以申请www.mysite.com/aTextFile.txt,但您将无法申请www.someothersite.com/aTextFile.txt

要使用jquery执行此操作,请参阅momo的答案。我打算输入相同的东西,但是他/她打败了我。

答案 2 :(得分:0)

我能想到的最简单的方法是使用服务器端语言将文档的内容输出到某个页面(例如不可见的textarea),然后让Javascript读取它。没有AJAX,没有库,而且速度非常快。

<textarea id="textarea"><?php include("test.txt") ?></textarea>

<script>
var str = document.getElementById("textarea").value;
</script>

现在,这并不总是最好的方式,但与使用异构Javascript到处都是重型框架而牺牲SEO性能相比......