简体   繁体   English

在Blogger上使用JSON feed获取存档

[英]Get Archive with JSON feed on Blogger

I know there is the widget for archive, but I want to create my own and add it to a page as a drop down menu. 我知道有用于存档的小部件,但是我想创建自己的小部件并将其添加到页面作为下拉菜单。

Is there a way to get archive months and years count with JSON feed? 有没有一种方法可以通过JSON feed获得存档的月份和年份?

In this example: JSFiddle the code retrieve all the posts and then add their date. 在此示例中: JSFiddle该代码检索所有帖子,然后添加其日期。 I removed the posts from showing, but I can't remove the day and repeated date. 我删除了显示的帖子,但无法删除日期和重复的日期。

 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <script> function LoadTheArchive(TotalFeed) { var PostTitles = new Array(); var PostURLs = new Array(); var PostYears = new Array(); var PostMonths = new Array(); var PostDays = new Array(); 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); PostYears.push(ThisPost.published.$t.substring(0, 4)); PostMonths.push(ThisPost.published.$t.substring(5, 7)); PostDays.push(ThisPost.published.$t.substring(8, 10)); var ThisPostURL; } } DisplaytheTOC(PostTitles, PostURLs, PostYears, PostMonths, PostDays); } function DisplaytheTOC(PostTitles, PostURLs, PostYears, PostMonths, PostDays) { var MonthNames = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]; var NumberOfEntries = PostTitles.length; for (var EntryNum = 0; EntryNum < NumberOfEntries; EntryNum++) { NameOfMonth = MonthNames[parseInt(PostMonths[EntryNum], 10) - 1] document.write("(" + NameOfMonth + " " + parseInt(PostDays[EntryNum], 10) + ", " + PostYears[EntryNum] + ")<br />"); } } </script> <script src="http://mylifeaslucille.blogspot.com/feeds/posts/default?max-results=500&amp;alt=json-in-script&amp;callback=LoadTheArchive"> </script> 

This function will: 该功能将:

function LoadTheArchive(TotalFeed) 
{    
  var resultArr = new Array();
  var months = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];
  if ("entry" in TotalFeed.feed)
  {        
    for (i in  TotalFeed.feed.entry)
    {
      var thisPost = TotalFeed.feed.entry[i];
      var dateObj = new Date(thisPost.published.$t);
      var element = "(" + months[dateObj.getMonth()] + ", " + dateObj.getFullYear() + ")<br />";
      if(resultArr.indexOf(element) == -1) resultArr.push(element);
    }
    document.write(resultArr.join('<br/>'));
  }
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM