Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在Blogger中导航相同标签下的下一篇和上一篇文章_Javascript_Jquery_Html_Blogger - Fatal编程技术网

Javascript 在Blogger中导航相同标签下的下一篇和上一篇文章

Javascript 在Blogger中导航相同标签下的下一篇和上一篇文章,javascript,jquery,html,blogger,Javascript,Jquery,Html,Blogger,首先,我希望您阅读 明白我想要什么吗?然后让我们继续我的问题: 现在我有了已经嵌入到下一个和上一个按钮主题中的代码,它们是: <nav class='op-pagi'> <a class='blog-pager-older-link' expr:href='data:olderPageUrl' expr:id='data:widget.instanceId + &quot;_blog-pager-older-link&quot;' expr:title='da

首先,我希望您阅读

明白我想要什么吗?然后让我们继续我的问题:

现在我有了已经嵌入到下一个和上一个按钮主题中的代码,它们是:

<nav class='op-pagi'>
<a class='blog-pager-older-link' expr:href='data:olderPageUrl' expr:id='data:widget.instanceId + &quot;_blog-pager-older-link&quot;' expr:title='data:olderPageTitle'><i class='fa fa-angle-left'/> Prev</a>
<a class='blog-pager-newer-link' expr:href='data:newerPageUrl' expr:id='data:widget.instanceId + &quot;_blog-pager-newer-link&quot;' expr:title='data:newerPageTitle'> Next <i class='fa fa-angle-right'/></a>
</nav>

使用我以前问过的问题,比如:

我自己做了一个代码:

<script>
//<![CDATA[

<b:if cond='data:blog.searchLabel'>

  var URLArray = <b:eval expr='data:posts map (post =&gt; post.url)'/>;
  var TitleArray = <b:eval expr='data:posts map (post =&gt; post.title)'/>;  

var cURL = "<data:post.url/>";
var gTitle = "<data:post.title>";
function IndexFinder(element,index) {
   return element == cURL
}
function IndexFinderT(element,index){
   return element == gTitle;
}
var sU = URLArray.findIndex(IndexFinder);
var sT = TitleArray.findIndex(IndexFinderT);

function prevURL(){
    var prevU=URLArray[sU-1];
return prevU;
}
function prevTitle(){
    var prevT=TitleArray[sT-1];
return prevT;
}
function nextURL(){
    var nextU=URLArray[sU+1];
return nextU;
}
function nextTitle(){
    var nextT=TitleArray[sT+1];
return nextT;
}

</b:if>
//]]>
</script>

//
var URLArray=;
var TitleArray=;
var cURL=“”;
var gTitle=“”;
函数索引(元素、索引){
返回元素==cURL
}
函数索引(元素、索引){
返回元素==gTitle;
}
var sU=URLArray.findIndex(IndexFinder);
var sT=TitleArray.findIndex(indexfinder);
函数prevURL(){
var-prevU=URLArray[sU-1];
返回prevU;
}
函数名称(){
var prevT=滴定射线[sT-1];
返回prevT;
}
函数nextur(){
var nextU=URLArray[sU+1];
返回nextU;
}
函数nextTitle(){
var nextT=TitleArray[sT+1];
返回nextT;
}
//]]>
现在,我尝试使用我首先为“下一步”和“上一步”按钮显示的代码,将
expr:href='data:olderPageUrl'
更改为
expr:href='prevURL()'

标题也一样
expr:title='data:olderPageTitle'
expr:title='prevTitle()'

但是没有起作用

你能告诉我哪里出了问题,怎么做吗


注意:我使用的是CDATA标记,没有什么特别的原因,只是把它放在那里,想想它可能会有什么帮助。我甚至在谷歌上搜索时也不明白它的确切用法。如果它导致任何问题,请提及。

使用CDATA可以防止blogger XML解析器解释数据标记,如

从代码中删除
//和
//]>
,或在blogger标记后使用它们:

<script>

<b:if cond='data:blog.searchLabel'>

var URLArray = <b:eval expr='data:posts map (post =&gt; post.url)'/>;
var TitleArray = <b:eval expr='data:posts map (post =&gt; post.title)'/>;  
var cURL = "<data:post.url/>";
var gTitle = "<data:post.title>";

//<![CDATA[

function IndexFinder(element,index) {
   return element == cURL
}
function IndexFinderT(element,index){
   return element == gTitle;
}
var sU = URLArray.findIndex(IndexFinder);
var sT = TitleArray.findIndex(IndexFinderT);

function prevURL(){
    var prevU=URLArray[sU-1];
return prevU;
}
function prevTitle(){
    var prevT=TitleArray[sT-1];
return prevT;
}
function nextURL(){
    var nextU=URLArray[sU+1];
return nextU;
}
function nextTitle(){
    var nextT=TitleArray[sT+1];
return nextT;
}

//]]>

</b:if>

</script>

var URLArray=;
var TitleArray=;
var cURL=“”;
var gTitle=“”;
//
由于
prevURL()
prevTitle()
都是JavaScript函数,而不是Blogger数据标记,因此不需要在属性前面使用
expr

您将需要修改函数,如下所示-

function prevURL(){
    var prevU=URLArray[sU-1];
    document.querySelector('.blog-pager-older-link').href = prevU;
}

function prevTitle(){
    var prevT=TitleArray[sT-1];
    document.querySelector('.blog-pager-older-link').title = prevT;
}
下一页的链接也是如此。无需更改页面的HTML


正如巴萨姆在另一个回答中提到的那样。不要将JavaScript包装在
CDATA
指令中,否则,Blogger使用的XML解析器将完全忽略脚本块,并且不会对任何数据标记进行评估

您可以将此代码粘贴到发布小部件中

<b:includable id='pager_chapter' var='type'>
<b:if expr:cond='data:post.labels any (l =&gt; l.name != data:type.name)'>
  <script type='text/javascript'>var selectchap = false;</script>
</b:if>
<b:if expr:cond='data:post.labels any (l =&gt; l.name == data:type.name)'>
  <script type='text/javascript'>var selectchap = true;</script>
</b:if>
<b:loop index='i' values='data:post.labels' var='label'>
  <b:if cond='data:i == 0'>
  <div class='pager-js rounded' id='pager-js'>
  <div class='_prev' id='prevjs'><a class='pager-js-nolink'><span class='material-icons' style='font-size:2.5rem;'>chevron_left</span></a></div>
  <div class='_index' id='indexjs'><a class='pager-js-nolink'><span class='material-icons' style='font-size:2.5rem;'>list</span></a></div>
  <div class='_next' id='nextjs'><a class='pager-js-nolink'><span class='material-icons' style='font-size:2.5rem;'>chevron_right</span></a></div>
  </div>
  <script type='text/javascript'>
    var postPrev = &quot;<span class='material-icons' style='font-size:2.5rem;'>chevron_left</span>&quot;;
    var postNext = &quot;<span class='material-icons' style='font-size:2.5rem;'>chevron_right</span>&quot;;
    var postIndex = &quot;<span class='material-icons' style='font-size:2.5rem;'>list</span>&quot;;
    var postID = <data:post.id/>;
    /*<![CDATA[*/
    if(selectchap==false){
      var yktocs=function(data){
        var i=0;
        for(;
        i<data.feed.entry.length;
        i++){
          var j=0;
          for(;
          j<data.feed.entry[i].link.length;
          j++){
            if("alternate"==data.feed.entry[i].link[j].rel){
              var entityUrl=data.feed.entry[i].link[j].href;
              break
            }
          }
          document.getElementById("indexjs").innerHTML="<a href='"+entityUrl+"' title='Index Novel'>"+postIndex+"</a>"
        }
      };
      var ykpager=function(data){
        var node={
          postlist:[]
        };
        var i=0;
        for(;
        i<data.feed.entry.length;
        i++){
          var j=0;
          for(;
          j<data.feed.entry[i].link.length;
          j++){
            if("alternate"==data.feed.entry[i].link[j].rel){
              var murl=data.feed.entry[i].link[j].href;
              break
            }
          }
          var videoId=data.feed.entry[i].id.$t;
          var CAPTURE_ID=videoId.substr(51,19);node.postlist.push({
            url:murl,id:CAPTURE_ID
          })
        }var v=node.postlist.findIndex((timeline_mode)=>{
          return timeline_mode.id==postID
        });
        var id=v+1;
        var cbs=node.postlist[id];
        if(null!=cbs){var g=Object.values(cbs)[0];
          var lnkDiv=document.getElementById("prevjs");
          lnkDiv.innerHTML="<a href='"+g+"' title='Chapter Sebelumnya'>"+postPrev+"</a>"
        }
        var q=v-1;
        var val=node.postlist[q];
        if(null!=val){
          var k=Object.values(val)[0];
          lnkDiv=document.getElementById("nextjs");
          lnkDiv.innerHTML="<a href='"+k+"' title='Chapter Selanjutnya'>"+postNext+"</a>"
        }
      }
    }
    else{document.write("<style>.pager-js{display:none;}</style>")
  };
    /*]]>*/
  </script>
  <script defer='defer' expr:src='&quot;/feeds/posts/summary/-/&quot; + data:label.name + &quot;?alt=json-in-script&amp;callback=ykpager&amp;max-results=99999999&quot;' type='text/javascript'/>
  <script defer='defer' expr:src='&quot;/feeds/posts/summary/-/&quot; + data:type.name + &quot;/&quot; + data:label.name + &quot;?orderby=published&amp;alt=json-in-script&amp;callback=yktocs&amp;max-results=1&quot;' type='text/javascript'/>
</b:if>
</b:loop>
</b:includable>

var-selectchap=false;
var-selectchap=true;
"
}
};
var ykpager=功能(数据){
变量节点={
帖子列表:[]
};
var i=0;
对于(;
我*/
并在



您可以阅读完整的教程

Prayag,您了解我想要实现的方式和内容吗?即使在更改代码后,代码也无法按我所希望的方式工作。您已经为我提供了很多帮助……因此,您可以帮助我到最后吗?我可以使用
onclick='functionname()是的,如果你不想修改脚本,你也可以使用
onclick
属性。我会调查这个问题,看看是否能找到解决办法。这个链接是相关帖子的代码。因为我想要的代码与此相关,或者可能与此相关。Prayag你知道我可以上传JS文件的网站吗我会在我的博客里用它吗?
<b:include data='{name : &quot;Novel&quot;}' name='pager_chapter'/>