0

我知道以前有人问过这个问题,但我仍在学习 JavaScript,而且我无法看穿其他人答案的复杂性。我在与读取 JavaScript 的 HTML 文件相同的目录中有一个文本文件,并且该文本文件实际上只有一行。我希望能够从文本文件中抓取该行并将其放入字符串中。什么是一种非常简单的方法可以在 FF、IE 和 Chrome 中工作,并且除了浏览器选择之外,是相当普遍有效的?同样,我知道以前有人问过这个问题,但是我无法从我在其他地方看到的示例代码的复杂性中选择真正的方法。谢谢!

4

3 回答 3

3

使用 jQuery 获取方法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 访问文本文件,并且脚本和文本文件都在同一个域中。

于 2012-10-29T15:50:16.400 回答
2

这很棘手,因为大多数浏览器默认情况下不允许 JS 从计算机的文件系统本地打开文件。不过,您可以使用 ajax 从 Web 服务器请求文本文件。为此,我会推荐 jQuery,因为正如您所说,它将非常“普遍有效”。在进行 ajax 调用时,请求必须遵守同源策略。通俗地说,如果您在 www.mysite.com,您可以请求 www.mysite.com/aTextFile.txt,但您无法请求 www.someothersite.com/aTextFile.txt

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

于 2012-10-29T15:55:38.550 回答
1

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

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

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

现在,这并不总是最好的方法,但与在任何地方使用异步 Javascript 和繁重的框架以牺牲 SEO 性能为代价相比......

于 2012-10-29T15:55:55.617 回答