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

时间:2016-07-07 10:16:12

标签: javascript xml blogger

我有这部分代码属于我正在处理的网站(谷歌博客)的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>")
};

使用此功能,用户可以获得飞行&#34; div覆盖索引页面中的每个帖子,显示每个帖子的相关标签。我的问题是,如果帖子有多个标签,这个功能只显示第一个标签alphabetically!知道我怎么能得到它们呢?

1 个答案:

答案 0 :(得分:2)

我想出了以下脚本,其中显示了所有帖子标题及其所有相应的标签..为了便于理解我已经使每个变量都自我解释..它在博客中完美运作..

<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>");
}};

希望这会有所帮助..