在 Blogger XML 文件中使用 javascript 显示 post 的所有标签

Show all labels of a post using javascript in Blogger XML file

我有这部分代码属于我正在处理的网站(google 博客)中的一个 js 文件。

function labelset(e) {
    var a = e.entry,
        t = a.category[0].term;
    document.write('<div class="post-cat"><a href="/search/label/' + t + '">' + t + "</a></div>")
};

使用此功能,用户在索引页中的每个 post 上得到一个 "flying" div,显示每个 post 的相关标签。我的问题是如果 post 有多个标签,这个函数只显示第一个标签 alphabetically!!!知道我怎样才能得到它们吗?

我想出了以下脚本,它显示了所有 post 标题及其所有相应的标签。为了便于理解,我让每个变量都自我解释。它在博客中完美运行。 =12=]

<script type="text/javascript">

function LoadDetails(TotalFeed) {
 var PostTitles = new Array();
 var PostURLs = new Array();
 var PostLabels=new Array();
 var d="";
 if ("entry" in TotalFeed.feed) {
 var PostEntries = TotalFeed.feed.entry.length;
 for (var PostNum = 0; PostNum < PostEntries; PostNum++) {
  var ThisPost = TotalFeed.feed.entry[PostNum];
  PostTitles.push(ThisPost.title.$t);
  d="";
 if("category"in TotalFeed.feed.entry[PostNum])
 {
 for(var b=0;b<TotalFeed.feed.entry[PostNum].category.length;b++)
  d+='<a href="/search/label/'+TotalFeed.feed.entry[PostNum].category[b].term+'?max-results=8">'+TotalFeed.feed.entry[PostNum].category[b].term+"</a> \u002C "; 
  b=d.lastIndexOf(" \u002C ");-1!=b&&(d=d.substring(0,b))
 }
  
  var ThisPostURL;
  for (var LinkNum = 0; LinkNum < ThisPost.link.length; LinkNum++) {
   if (ThisPost.link[LinkNum].rel == "alternate") {
   ThisPostURL = ThisPost.link[LinkNum].href;
   break;
   }
  }
  PostURLs.push(ThisPostURL);
  PostLabels.push(d);
 }
 }
 DisplayPosts(PostTitles, PostURLs, PostLabels);
}

function DisplayPosts(PostTitles, PostURLs, PostLabels) {
 var NumberOfEntries = PostTitles.length;
 document.write('<ul class="blogger-archive">');
 for (var EntryNum = 0; EntryNum < NumberOfEntries; EntryNum++) {
  document.write('<li><a href ="' + PostURLs[EntryNum] + '">' + PostTitles[EntryNum] + "</a> | <span>"+PostLabels[EntryNum]+"</span></li>");
 }
document.write('</ul>');
}
</script>

<script type="text/javascript" src="/feeds/posts/default?max-results=500&alt=json-in-script&callback=LoadDetails"></script>

*在你的情况下应该是这样的..

function labelset(e) { //Note:- e must be TotalFeed.feed
var a = e.entry;
for(var b=0;b<a.category.length,b++){
    document.write('<div class="post-cat"><a href="/search/label/' + a.category[b].term + '">' + a.category[b].term + "</a></div>");
}};

希望这对您有所帮助..