2017-04-04 114 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[//]]>或博主標籤之後使用它們: