如何将小文本文件的内容加载到javascript var wo / JQuery中?

时间:2015-01-08 12:32:15

标签: javascript json pebble-watch pebble-js

我试图从我控制的服务器加载一个非常简单的文本文件(例如:0 online:1 online: Username2 online: Username, Username),该文件根据号码进行更改将我的Minecraft服务器上的用户转换为javascript var,这样我最终可以将它加载到我的Pebble中并使其或多或少的实时更新。 (阅读:没有jquery)(另请阅读:我几乎不知道我实际在做什么,如果有更好的方法可以做到这一点,请知道。)

我已完成lot of googling这主要指向using JSON and XMLHTTPRequests(编辑:XMLHTTPRequests可能是必要的)但他们对于我需要的东西来说似乎过于复杂(这是通过HTTP提供文本文件的内容,将其填入var中,并让Pebble在屏幕上吐出来。)

如果没有JQuery,甚至可能没有JSON,我怎样才能将文本文件的内容加载到javascript var?

一些注意事项:

  • 最终将通过Hamachi访问服务器,但如果我能在本地工作,我会非常激动。
  • 关注this answer,我得到this result。同样适用于本地IP。

2 个答案:

答案 0 :(得分:2)

这很容易做到,只需在脚本开头包含XmlHttpRequest的这个包装器(它更容易使用):

var xhrRequest = function (url, type, callback) {
  var xhr = new XMLHttpRequest();
  xhr.onload = function () {
    callback(this.responseText);
  };
  xhr.open(type, url);
  xhr.send();
};

然后像这样称呼它:

xhrRequest(url, 'GET', function(responseText) { 
  console.log("This is the content you got: " + responseText);
});

如果您使用JSON格式化内容,它实际上会让您更轻松,因为您不必解析文件,您可以使用JavaScript自动解析它:

例如,如果回复是:

{ onlineCount: 42, usernames: [ "Alice", "Bob", "Charlie", "etc" ] }

然后你可以像这样处理它:

xhrRequest(url, 'GET', 
  function(responseText) {
    // responseText contains a JSON object
    var json = JSON.parse(responseText);

    // Now you can process this as a JavaScript dictionary
    console.log("Number of online players: " + json.onlineCount);
    console.log("First player: " + json.usernames[0]);

    // And send messages to Pebble
    Pebble.sendAppMessage({ 0: json.onlineCount });
  }
);

对于一个完整的例子和C面(在Pebble上),你应该在Step 3 of the Pebble Tutorial获取一个战利品,它与天气数据完全一致。

答案 1 :(得分:1)

最简单的方法是将文本文件格式化为js文件:

var playerinfo = "1 online: Username";

并像通常的js一样包含脚本:

<script type="text/javascript" src="http://localhost/mytextfile.js"></script>

然后页面将有一个变量playerinfo供您使用的js代码。