在Blogger中按标签导航下一个和上一个帖子

时间:2017-07-17 07:08:44

标签: javascript jquery html xml blogger

我编写了一个代码,用于浏览同一标签下的下一篇和之前的帖子。

我的博客是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='&quot;feeds/posts/summary/-/&quot;+data:label.name+&quot;?alt=json-in-script&amp;callback=recentpostslist&amp;max-results=999&quot;' 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='&quot;feeds/posts/summary/-/&quot;+data:label.name+&quot;?alt=json-in-script&amp;callback=recentpostslist&amp;max-results=999&quot;' type='text/javascript'/>
</b:loop>

请帮忙。

1 个答案:

答案 0 :(得分:1)

问题正在发生,因为分隔符之间没有空格(+&quot;

代码应该是 -

<b:loop values='data:post.labels' var='label'>
<script expr:src='&quot;feeds/posts/summary/-/&quot; +data:label.name+ &quot;?alt=json-in-script&amp;callback=recentpostslist&amp;max-results=999&quot;' type='text/javascript'/>
</b:loop>