2017-04-04 118 views
2

对于初学者相同标签的我要你读
Next and Prev Buttons for Blogger Theme导航Next和Prev帖子在Blogger中

理解我想要个什么概念?那么,让我们继续与我的问题:

现在我有一个已经嵌入到明年和prev按钮主题的代码,它们分别为:

<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> 

,并使用我以前喜欢问的问题:
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 =&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> 

现在我试图用我第一次表现出对next和prev按钮改变expr:href='data:olderPageUrl'expr:href='prevURL()'
与同为标题也
expr:title='data:olderPageTitle'expr:title='prevTitle()'
但没有工作的代码。

你能告诉我我哪里出了问题,以及如何使它工作?

注:我使用CDATA标签并没有任何特别原因,只是把它放在那里想这可能以某种方式帮助。即使我在谷歌上搜索,我也不明白它的确切用法。如果它引起任何问题,请提及它。

回答

1

由于两个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。

另外,作为巴萨姆在其他答复中提到。不要在CDATA指令包裹的JavaScript否则,Blogger的使用将完全忽略了脚本块,并没有数据标签XML解析器将得到评估

+0

Prayag,你了解如何以及我想要达到什么目的?即使在更改之后,代码也无法正常工作。你对我的帮助很大......所以你能帮助我直到最后吗? – yashas123

+0

我可以使用'onclick ='functionname();'' – yashas123

+0

是的,如果您不想修改脚本,也可以使用'onclick'属性。我会看看问题http://stackoverflow.com/questions/42929419/next-and-prev-buttons-for-blogger-theme/,看看我能想出解决方案 –

1

使用CDATA防止博主XML解析器从解释数据标签,如<b:if cond='data:blog.searchLabel'>

从代码删除//<![CDATA[//]]>或博主标签之后使用它们: