在 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>");
}};
希望这对您有所帮助..
我有这部分代码属于我正在处理的网站(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>");
}};
希望这对您有所帮助..