logo logo_banner

Google AJAX Feed APIで外部のRSSを読み込み一覧を表示するJavascriptを改造

| トラックバック(0)

前回のページ「
Warning: Missing argument 2 for getTitleLink(), called in /home/sites/heteml/users158/m/h/0/mh0723/web/hoshiya.biz/blog/2009/07/google-ajax-feed-apirssjavascript.php on line 38 and defined in /home/sites/heteml/users158/m/h/0/mh0723/web/hoshiya.biz/include/function/function.php on line 104
Google AJAX Feed APIを使ってアメーバブログの「PR:」を除く記事一覧を表示するJavascript|星屋工作室 hoshiya.biz 」で紹介したスクリプトを一部変更してみた。

 

変更の主な内容は、

表示するリストを作成する際に、HTMLタグを変数に入れるように改造しました。(赤文字部分)

前回はXMLの要素を操作してリストを作成するようにしていましたが、

XMLの操作は苦手なのでHTMLのソースを変数に格納するようにしました。

<script src="http://www.google.com/jsapi?key=●●あなたのAPIキー●●" type="text/javascript"></script>
<script type="text/javascript">
google.load("feeds", "1");  
function initialize()
{  
 //RSSフィードの取得
 var feed = new google.feeds.Feed("●●読み込みたいフィードのURL●●");  
 
 //取得するフィード数
 feed.setNumEntries(5)  
 
 //実際に読む込む
 feed.load(function(result)
 {  
  
  //読み込めたか判別
  if (!result.error)
  {
   //表示部分を選択
   var container = document.getElementById("feed");
   
   //変数の初期化
   var list = "";
   
   //Feedの処理
    list = '<ul>';
   for (var i = 0; i < result.feed.entries.length; i++)
   {  
    //Feedを一つ抽出
    var entry = result.feed.entries[i]; 
    if(entry.title.match(/^PR:/)) {
    //「PR:」から始まるものがあれば何もしない
    }
    else{
     list += '<li>';
     list += '<a href="' + entry.link + '" target="_blank">' + entry.title + '</a>';
     var strdate = createDateString(entry.publishedDate);
     list += '(' + strdate + ')';
     list += '</li>';

    }
        }
     list += '</ul>';
     container.innerHTML = list;

     }  
   });  
}
//日付の表示方法を変更
function createDateString(publishedDate){
  var pdate = new Date(publishedDate);
  var pday = pdate.getDate();
  var pmonth = pdate.getMonth() + 1;
  var pyear = pdate.getFullYear();
  var phour = pdate.getHours();
  var pminute = pdate.getMinutes();
  var psecond = pdate.getSeconds(); 
  //var strdate = pyear + "年" + pmonth + "月" + pday + "日" + phour + "時" + pminute + "分" + psecond + "秒";
  var strdate = pyear + "-" + pmonth + "-" + pday ;
  return strdate;
}
google.setOnLoadCallback(initialize); 
</script>
<!--表示結果表示する部分-->
<hr size="1" />
<div id="feed"></div>
<hr size="1" />
<!--表示結果表示する部分--> 

 

↓↓実際にうちの社長のアメブロのフィードを読み込んで表示した例↓↓



 

前回同様に

RSSに「PR:」が含まれていなければ新着5件を表示しますが、

新着5件中1件に「PR:」が含まれていた場合は

フィード自体から削除して消すのではなく、省略というか、スキップしているだけなので

表示が4件になります。

この辺りは改善が必要ですが、また今度にします。

 

参考にしたサイト

 

2009/09/23追記

上記を更に改造↓

トラックバック(0)

トラックバックURL: