1

我正在为 Wikia 社区 ( http://c.wikia.com ) 编写用户脚本,我需要获取页面的用户数组(可能还有修订 ID)。我想出了以下代码,但似乎无法使其工作。任何帮助,将不胜感激。

代码:

var revisions = [];
$.getJSON('/api.php', {
    action: 'query',
    prop: 'revisions',
    titles: mw.config.get("wgPageName"),
    rvprop: 'user',
    rvlimit: '50',
    format: 'json'
}, function (result) {
    for (var i = 0; i < 50; i++) {
        var revision = result.query.pages.page[i].revisions.user;
        revisions.push(revision);
    }
    alert(revisions);
});
4

1 回答 1

1

查询结果如下所示:

{
  "query": {
    "pages": {
      "421588": {
        "pageid": 421588,
        "ns": 0,
        "title": "Community Central",
        "revisions": [
          {
            "user": "Mhadick"
          },
          {
            "user": "Nblonkenfeld"
          },
          …
        ]
      }
    }
  },
  …
}

您会注意到这pages是一个具有以当前页面的页面 id 命名的属性的对象"421588"(从您的代码来看,您可能正在查看响应的 XML 版本,您必须查看 JSON)。为此,您可以使用以下内容:

var users = [];

$.getJSON('/api.php', {
    action: 'query',
    prop: 'revisions',
    titles: mw.config.get("wgPageName"),
    rvprop: 'user',
    rvlimit: '50',
    format: 'json'
}, function (result) {
    var revisions = result.query.pages[mw.config.get("wgArticleId")].revisions;

    $.each(revisions, function(key, revision) {
        users.push(revision.user);
    });

    alert(users);
});
于 2013-10-04T15:54:21.760 回答