仅使用javascript读取TEXT文件

时间:2013-03-09 09:48:04

标签: javascript

可以从我的HTML5游戏资源中逐行读取txt文件吗? (Resources =我游戏项目中的一个文件夹) 我保留了关于我游戏中关卡等级的文件信息。 我发现只使用PHP,Ajax的例子,但所有这些都需要服务器,但我想在服务器或离线模式下运行我的游戏。 提前谢谢。

2 个答案:

答案 0 :(得分:2)

模板和预处理语言(如LESS或CoffeeScript)经常使用的一种技术是使用浏览器无法识别的type属性的脚本标记。这会导致它被浏览器和搜索引擎忽略,但可以通过JavaScript访问。

demo | code view

  <script type="text/mygamelevel" id="level1">
    0010011001111011
    0011011100010
    10101110111101101
  </script>

  <script type="text/javascript">
    var level = document.getElementById("level1").text;
    var lines = level.split("\n");
    for (var i=0; i<lines.length; i++) {
      var line = lines[i];
      if (!line.trim()) continue;

      alert(line);
    }
  </script>

如果首选文件,您可以动态请求它。这是使用jQuery's get函数的示例。

$.get('levels/level1.txt', function(level) {
    var lines = level.split("\n");
    for (var i=0; i<lines.length; i++) {
      var line = lines[i];
      if (!line.trim()) continue;

      alert(line);
    }
});

不保证回调中的代码将在任何给定时间执行,因此我建议在其中放置一些启动新级代码,而不是代码中的任何其他位置。否则,您不知道您是否已下载级别信息。通过内联数据来避免此问题,如本答案的第一个片段所示。

答案 1 :(得分:1)

浏览器的JavaScript不能也不应该直接访问本地文件系统。