对于初学者,我希望你阅读
Next and Prev Buttons for Blogger Theme
明白我想要什么的概念吗?那么让我们继续我的问题:
现在我有了已经嵌入到主题中的下一个和上一个按钮的代码,它们是:
<nav class='op-pagi'>
<a class='blog-pager-older-link' expr:href='data:olderPageUrl' expr:id='data:widget.instanceId + "_blog-pager-older-link"' 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 + "_blog-pager-newer-link"' expr:title='data:newerPageTitle'> Next <i class='fa fa-angle-right'/></a>
</nav>
并使用我之前问过的问题,例如:
How to store the URL's and Titles of a list of posts under same label into a String array in Blogger
以及
How to match and point to a particular data in array in Blogger
我自己编写了一个代码:
<script>
//<![CDATA[
<b:if cond='data:blog.searchLabel'>
var URLArray = <b:eval expr='data:posts map (post => post.url)'/>;
var TitleArray = <b:eval expr='data:posts map (post => 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>
现在我尝试使用我首先显示的下一个和上一个按钮的代码,方法是将 expr:href='data:olderPageUrl'
to expr:href ='prevURL()'
标题也一样
expr:title='data:olderPageTitle'
至 expr:title='prevTitle()'
但没有用。
你能告诉我哪里出了问题以及如何让它工作吗?
注意:我使用CDATA标签没有特殊原因,只是把它放在那里,认为它可能会有所帮助。即使我在谷歌上搜索,我也不明白它的具体用法。如果它引起任何问题,请提及。
最佳答案
由于 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。
也正如另一个答案中提到的Bassam。不要将 JavaScript 包装在 CDATA
指令中,否则 Blogger 使用的 XML 解析器将完全忽略脚本 block ,并且不会评估任何数据标记
关于javascript - 在 Blogger 中的相同标签下导航下一篇和上一篇文章,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43211943/