我编写了一个代码,用于浏览同一标签下的下一篇和之前的帖子。
我的博客是http://www.rawdevart.com/
此博客中的所有帖子始终只有1个标签。该博客是为日本漫画(漫画)主持,所以这些章节将在一个共同的标签下,这是章节漫画的标题。
代码是:
<style>
#button_block_container
{
text-align:center;
}
#next, #prev
{
display: inline-block;
}
</style>
<script type="text/javascript">
//<![CDATA[
var pT="<data:post.title/>";
function recentpostslist(json) {
var eU=new Array();
var eT=new Array();
var current,k=0;
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') {
break;
}
}
eU[k] = "'" + json.feed.entry[i].link[j].href + "'";//bs
eT[k] = json.feed.entry[i].title.$t;
k++;
}
for(var i=0;i<k;i++)
{
if(eT[i]==pT)
current=i;
}
nb(current,eT,eU,k);
}
function nb(c,eT,eU,k)
{
var np=c-1;
var pp=c+1;
if(c!=0)
{
if(np!=0)
{
var next="<a href="+eU[np]+"><img src='https://1.bp.blogspot.com/-vbAhPUydPwA/WWuen8w2rsI/AAAAAAAAVP4/rutiJBBKz2kYTclTUKtq6W2vBm8pi6uaACLcBGAs/s1600/if_go-next_118773.png' alt='Next Chapter' title='Next Chapter' height='48' width='48'/></a>";
document.getElementById("next").innerHTML=next;
}
if(pp!=k)
{
var prev="<a href="+eU[pp]+"><img src='https://2.bp.blogspot.com/-jHxFGDn9aj0/WWueoDAidyI/AAAAAAAAVP8/O_okyJkKiE0j621B2b6d6AmWGDL_7SczACLcBGAs/s1600/if_go-previous_118774.png' alt='Previous Chapter' title='Previous Chapter' height='48' width='48'/></a>";
document.getElementById("prev").innerHTML=prev;
}
}
}
//]]>
</script>
<b:loop values='data:post.labels' var='label'>
<script expr:src='"feeds/posts/summary/-/"+data:label.name+"?alt=json-in-script&callback=recentpostslist&max-results=999"' type='text/javascript'/>
</b:loop>
逻辑是完美的。当我在变量pT
中放入一些章节的标题并且我将其用作脚本回调
<script src="http://www.rawdevart.com/feeds/posts/summary/-/**LABEL NAME**?max-results=150&alt=json-in-script&callback=recentpostslist"></script>
但是当我将其放入Blogger模板时,我需要使用expr:src
来接受data:label.name
。
顺便说一下,这里是我使用的变量的解释
eU
是一个数组,其中包含存储在其中的给定标签下的帖子的所有网址。
eT
是一个数组,其中包含存储在其中的给定标签下的帖子的所有标题
pT
用于存储当前浏览章节名称的名称
我正在使用for
循环:
for(var i=0;i<k;i++)
{
if(eT[i]==pT)
current=i;
}
nb(current,eT,eU,k);
在这里,它使用eT
数组中的所有帖子标题与当前if(eT[i]==pT)
进行比较,找出当前帖子所在的数组索引,
将找到的索引值存储在current
中,然后将其发送到具有当前索引的函数nb()
,以及最后存储的数组索引k
。
np
存储下一篇文章的索引值。由于这些帖子按近期排行榜顺序排列,因此我必须current-1
和上一篇pp
current+1
。{/ p>
if(np!=0)
用于查找是否没有其他帖子,if(pp!=k)
查找是否没有以前的帖子。
现在问题部分:
当我在Blogger HTML模板中键入代码并保存并转到帖子时,根本没有显示帖子的内容。
只有页脚和顶部标题加载。
并发现问题在于回调脚本:
<b:loop values='data:post.labels' var='label'>
<script expr:src='"feeds/posts/summary/-/"+data:label.name+"?alt=json-in-script&callback=recentpostslist&max-results=999"' type='text/javascript'/>
</b:loop>
请帮忙。
答案 0 :(得分:1)
问题正在发生,因为分隔符之间没有空格(+
和"
)
代码应该是 -
<b:loop values='data:post.labels' var='label'>
<script expr:src='"feeds/posts/summary/-/" +data:label.name+ "?alt=json-in-script&callback=recentpostslist&max-results=999"' type='text/javascript'/>
</b:loop>