我从http://yabtb.blogspot.com/的MS-Potilas中选择了这个优秀的javascript,它通过从博客供稿中调用标题信息,将我的下一个和之前的博客标题附加到prev和next图标。如果它以某种方式失败,它有一个备份,即从网址中提取信息并将其转换为伪标题模式中的标题。
事情是,它只适用于我博客文章的最新一半。之后,它切换到PseduoTitle模式。
这是我不明白的。它应该适用于500个帖子。我的网站只有350+。那么为什么它似乎只适用于最新的100多个帖子?
另外,我可以做些什么来增加这篇文章在过去500篇帖子后的帖子数量吗?
非常感谢你的帮助。
这是脚本;
<script type='text/javascript'>
// Post titles to Older Post and Newer Post links (without stats skew)
// by MS-potilas 2012. See http://yabtb.blogspot.com/
//<![CDATA[
var urlToNavTitle = {};
function getTitlesForNav(json) {
for(var i=0 ; i < json.feed.entry.length ; i++) {
var entry = json.feed.entry[i];
var href = "";
for (var k=0; k<entry.link.length; k++) {
if (entry.link[k].rel == 'alternate') {
href = entry.link[k].href;
break;
}
}
if(href!="") urlToNavTitle[href]=entry.title.$t;
}
}
document.write('<script type="text/javascript" src="//'+window.location.hostname+'/feeds/posts/summary?redirect=false&max-results=500&alt=json-in-script&callback=getTitlesForNav"/>');
function urlToPseudoTitle(href) {
var title=href.match(/\/([^\/_]+)(_.*)?\.html/);
if(title) {
title=title[1].replace(/-/g," ");
title=title[0].toUpperCase() + title.slice(1);
if(title.length > 28) title=title.replace(/ [^ ]+$/, "...")
}
return title;
}
$(window).load(function() {
window.setTimeout(function() {
var href = $("a.blog-pager-newer-link").attr("href");
if(href) {
href = href.replace(/\http\:[^/]+\//, "https");
var title=urlToNavTitle[href];
if(!title) title=urlToPseudoTitle(href);
if(title) $("a.blog-pager-newer-link").html("<< Newer<br />" + title);
}
href = $("a.blog-pager-older-link").attr("href");
if(href) {
href = href.replace(/\http\:[^/]+\//, "https");
var title=urlToNavTitle[href];
if(!title) title=urlToPseudoTitle(href);
if(title) $("a.blog-pager-older-link").html("Older >><br />" + title);
}
}, 500);
});
//]]>
</script>
答案 0 :(得分:1)
似乎我设法弄明白了。
显然,即使剧本说max-results = 500,该剧本实际上只拉了150个帖子。我不知道为什么会这样。
所以我只是添加了更多这样的检索脚本来覆盖其余部分。
document.write('<script type="text/javascript" src="//'+window.location.hostname+'/feeds/posts/summary?redirect=false&max-results=150&start-index=151&alt=json-in-script&callback=getTitlesForNav"/>');
function urlToPseudoTitle(href) {
var title=href.match(/\/([^\/_]+)(_.*)?\.html/);
if(title) {
title=title[1].replace(/-/g," ");
title=title[0].toUpperCase() + title.slice(1);
if(title.length > 28) title=title.replace(/ [^ ]+$/, "...")
}
return title;
}
非常感谢Adam在http://too-clever-by-half.blogspot.com/处为&amp; start-index = 151扩展提供了解决方案。