我有简单的博客json feed
<script type='text/javascript'>
function mycallback(json) {
for (var i = 0; i < json.feed.entry.length; i++) {
for (var j = 0; j < json.feed.entry[i].link.length; j++) {
if (json.feed.entry[i].link[j].rel == 'alternate') {
var postUrl = json.feed.entry[i].link[j].href;
break;
}
}
var postTitle = json.feed.entry[i].title.$t;
var item = '<ul><li><a href=' + postUrl + '>' + postTitle + '</a></li></ul>';
document.write(item);
}
}
</script>
<button type="button">Prev</button>
<button type="button">Next</button>
<h2>Recent Post</h2>
<script src='https://techtovillage.blogspot.com/feeds/posts/default?orderby=published&max-results=1000&alt=json-in-script&callback=mycallback'></script>
此代码显示我的总帖子列表。 如何将所有帖子链接划分为5个链接列表并使用下一个上一个按钮访问所有帖子链接
答案 0 :(得分:0)
一个简单的解决方案是使用jQuery分页库,例如这个http://flaviusmatis.github.io/simplePagination.js/。它创造了一个分页甚至风格。在本课题(https://stackoverflow.com/a/20896955/1679286)中,如果项目页面不够清晰,则会更详细地解释用法。
这里有一个迷你演示(它是如何工作的)
var listInfo = {
itemsOnPage:4,
items:[]
};
function mycallback(json) {
var tableContent = "";
listInfo.itemsCount = json.feed.entry.length
for (var i = 0; i < listInfo.itemsCount; i++) {
var postTitle = json.feed.entry[i].title.$t;
for (var j = 0; j < json.feed.entry[i].link.length; j++) {
if (json.feed.entry[i].link[j].rel === 'alternate') {
var postUrl = json.feed.entry[i].link[j].href;
break;
}
}
tableContent += '<tr><td><a href=' + postUrl + '>' + postTitle + '</a></td></tr>';
}
$("#recentPost").html(tableContent);
listInfo.items = $("#recentPost tr");
console.info(listInfo)
$("#pagination").pagination({
items: listInfo.itemsCount,
itemsOnPage: listInfo.itemsOnPage,
cssStyle:"light-theme",
onPageClick: function(pageNumber) {
var from = listInfo.itemsOnPage * (pageNumber - 1);
var to = from + listInfo.itemsOnPage;
listInfo.items.hide()
.slice(from, to).show();
}
})
.pagination('selectPage', 1);
}
$.ajax({
url: "https://techtovillage.blogspot.com/feeds/posts/default?orderby=published&max-results=16&alt=json-in-script",
jsonp: "callback",
dataType: "jsonp",
success: function( response ) {
mycallback(response);
}
});
&#13;
<link href="https://rawgit.com/flaviusmatis/simplePagination.js/master/simplePagination.css" rel="stylesheet"/>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://rawgit.com/flaviusmatis/simplePagination.js/master/jquery.simplePagination.js"></script>
<h2>Recent Post</h2>
<table id="recentPost">
</table>
<div id="pagination"></div>
&#13;
可选强>
另一个不是100%保存的解决方案,因为帖子的顺序可能会更改,但不会使用google参考https://developers.google.com/gdata/docs/2.0/reference#Queries中提到的查询参数start-index
加载所有帖子
创建此链接:
https://techtovillage.blogspot.com/feeds/posts/default?orderby=published&max-results=5&start-index=1&alt=json-in-script&callback=mycallback
并调整代码以更改为仅加载当前帖子,使用Ajax调用(jQuery JSONP等),以便start-index
递增/递减5,具体取决于单击的按钮/链接