javascript - 使用 jQuery getJson 从 Tumblr 博客获取所有帖子

标签 javascript jquery ajax tumblr getjson

我想使用 Tumblr 的 API 使用 jQuery getJson 获取 Tumblr 博客的所有文本帖子。

我尝试使用以下代码,但我只收到了 20 个帖子:

function loadPosts () {

  var key = "api_key=xBcVPLfdDKpH0GjMCd1whW7rPoYkzLgZD3ZwpzndISFI4huSpA"
  var api = "https://api.tumblr.com/v2/blog/only-text-posts.tumblr.com/"
  var post_amount

  $.getJSON(api + "info?" + key,function(data) {
    post_amount = data.response.blog.posts
    $.getJSON(api + "posts/text?&filter=text&limit=" + post_amount + "&" + key,function(data) {
      $.each(data.response.posts, function(i, item) {
        var content = item.body
        $("#Posts ul").append('<li>' + content + '</li>')
      });
    })
  })

}

这里有一个很好的示例 Tumblr 博客用于测试:

http://only-text-posts.tumblr.com/

最佳答案

根据documentation , 最多只返回 20 个帖子。您可以使用 offset 参数指定偏移量,并通过多次调用检索所有帖子:

function loadPosts () {

    var key = "api_key=your_key";
    var api = "https://api.tumblr.com/v2/blog/only-text-posts.tumblr.com/";
    var retrieve_more = function (offset) {
        $.getJSON(api + "posts/text?callback=?&filter=text&limit=20&offset=" + offset + "&" + key,function(data) {
            $.each(data.response.posts, function(i, item) {
                var content = item.body;
                $("#Posts ul").append('<li>' + content + '</li>')
            });

            if (data.response.posts.length == 20) {
                retrieve_more(offset + 20);
            }
        });
    };

    retrieve_more(0);
}

loadPosts();

fiddle

关于javascript - 使用 jQuery getJson 从 Tumblr 博客获取所有帖子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24898291/

相关文章:

javascript - 如何删除数据表上的文本 "entries"

jquery - Video.js 仅在暂停时显示播放按钮

javascript - AJAX 将 POST 变量发送到 PHP

javascript - jQuery 函数中的复杂代码

javascript - 动态创建对象,eval 的替代方法是什么?

javascript - 将 php 数组作为 json 元素传递,并在隐藏输入中使用 json_encode

javascript - 我将如何制作具有重叠区域的堆积面积图?

javascript - 为什么在这个井字游戏中输入 X 或 O 时我的 div 会移动

javascript - 无法将模型绑定(bind)到集合

javascript - jQuery .on click 事件并不总是在 Ajax 加载的内容上触发