Javascript 页面导航脚本在Blogger中无法完全工作
我从Potilas女士那里学到了这个很棒的javascript,她通过调用博客提要中的标题信息,将我的下一个和上一个博客标题附加到上一个和下一个图标上。如果失败了,它会有一个备份,即从URL中提取信息,并以伪标题模式将其转换为标题 问题是,它只适用于我最新一半的博客帖子。之后,它将切换到psedoutitle模式 这是我不明白的。它应该能为500个职位工作。我的网站只有350+。那么,为什么它似乎只适用于最新的100多篇文章 还有,我能做些什么,这样我就可以在我超过500篇文章之后,增加这个脚本将用于的文章的数量 非常感谢你的帮助 这是剧本Javascript 页面导航脚本在Blogger中无法完全工作,javascript,blogger,Javascript,Blogger,我从Potilas女士那里学到了这个很棒的javascript,她通过调用博客提要中的标题信息,将我的下一个和上一个博客标题附加到上一个和下一个图标上。如果失败了,它会有一个备份,即从URL中提取信息,并以伪标题模式将其转换为标题 问题是,它只适用于我最新一半的博客帖子。之后,它将切换到psedoutitle模式 这是我不明白的。它应该能为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>
//将标题发布到较旧的帖子和较新的帖子链接(无统计数据倾斜)
//作者:potilas女士,2012年。看见http://yabtb.blogspot.com/
//28)标题=标题。替换(/[^]+$/,“…”)
}
返回标题;
}
$(窗口)。加载(函数(){
setTimeout(函数(){
var href=$(“a.blog-pager-newer-link”).attr(“href”);
如果(href){
href=href.replace(/\http\:[^/]+\/,“https”);
var title=urlToNavTitle[href];
如果(!title)title=urlToPseudoTitle(href);
if(title)$(“a.blog-pager-newer-link”).html(“newer
”+title);
}
href=$(“a.blog-pager-older-link”).attr(“href”);
如果(href){
href=href.replace(/\http\:[^/]+\/,“https”);
var title=urlToNavTitle[href];
如果(!title)title=urlToPseudoTitle(href);
if(title)$(“a.blog-pager-older-link”).html(“older
”+title);
}
}, 500);
});
//]]>
看来我设法解决了
显然,尽管脚本说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;
}
document.write(“”);
函数urlToPseudoTitle(href){
var title=href.match(/\/([^\/\]+)(\.*)\.html/);
如果(标题){
title=title[1]。替换(/-/g,”);
title=title[0].toUpperCase()+title.slice(1);
如果(title.length>28)title=title.replace(/[^]+$/,“…”)
}
返回标题;
}
非常感谢at的Adam为&start index=151扩展提供了解决方案