2017-07-17 22 views
1

同じラベルの下にある次と前の投稿をナビゲートするためのコードを書きました。次のページと前の投稿の表示Bloggerの

私のブログは常にわずか1つのラベルの下になります。このブログで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> 

しかし、私は、私はそれがdata:label.nameを受け入れる作るためにexpr:srcを使用するために必要なBloggerのテンプレートに入れたとき。

ところで私が使用した変数の説明はここにあります。
eUは、指定されたラベルの下にあるすべてのURLの投稿が格納されている配列です。
eTは、指定されたラベルの下にある投稿のすべてのタイトルが格納されている配列です。
pTは、現在ブラウジング中のチャプター名の名前を格納するために使用されます。
私はforループ使用しています:ここで

for(var i=0;i<k;i++) 
    { 
    if(eT[i]==pT) 
     current=i; 
    } 
    nb(current,eT,eU,k); 

を、それが現在のポストが現在のif(eT[i]==pT)eT配列、中 店舗見つかったインデックス値にすべてのポストタイトルの比較使用して配置された配列のインデックスを発見currentと私はそれを現在のインデックスを持つnb()関数に送って、配列と最後に格納された配列インデックスkの両方を返します。

npは、次の投稿のインデックス値を格納します。投稿がRecentpostlistの順番に並べられているので、私はcurrent-1と前の投稿ppcurrent+1としなければならなかった。

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

デリミタ(+&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> 
関連する問題