例:Google APIでFacebookページのウォールのRSSを取得してHTML出力するサンプルです。
可変グリット表示は、jquery.vgrid.jsを使用しています。ウィンドウサイズを変えると要素が自動的に並びます。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta http-equiv="Content-Language" content="ja" /> <meta http-equiv="Content-Script-Type" content="text/javascript" /> <meta http-equiv="Content-Style-Type" content="text/css" /> <meta http-equiv="imagetoolbar" content="no" /> <title>設置サンプル</title> <link rel="stylesheet" type="text/css" href="/content/lib/global.css" /> <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js"></script> <script type="text/javascript" src="/content/lib/jquery/jquery.vgrid.0.1.6.min.js"></script> <script type="text/javascript" src="/content/lib/jquery/jquery.easing.1.3.js"></script> <!-- JS --> <script type="text/javascript"> function formatString(str){ str = str.replace(/((ftp|http|https?):\/\/([-\w\.]+)+(:\d+)?(\/([\w/_\.]*(\?\S+)?)?)?)/gm,'<a href="$1" target="_blank">$1</a>'); return str; } function relativeTime(pastTime){ var origStamp = Date.parse(pastTime); var curDate = new Date(); var currentStamp = curDate.getTime(); var difference = parseInt((currentStamp - origStamp)/1000); if(difference < 0) return false; if(difference <= 5) return "いまさっき"; if(difference <= 20) return "数秒前"; if(difference <= 60) return "1分以内"; if(difference < 3600) return parseInt(difference/60)+" 分前"; if(difference <= 1.5*3600) return "約1時間前"; if(difference < 23.5*3600) return Math.round(difference/3600)+" 時間前"; if(difference < 1.5*24*3600) return "1日前"; var dateArr = pastTime.split(' '); return (parseInt(difference / 86400)).toString() + '日前'; } $(function(){ }); </script> <style type="text/css"> #grid-content { list-style-type: none; margin:0; padding:0; overflow:hidden; } #grid-content li { list-style-type: none; width:200px; border:1px dotted #ccc; outline:1px solid #ccc; background:#fff; margin:5px; padding:5px; word-break:break-all; box-sizing:content-box; } #grid-content li a { color:#ff6699; } #grid-content li div { margin:0 0 5px 0; padding:0 0 5px 0; overflow:hidden; border-bottom:1px dotted #ccc; } #grid-content li span { font-size:80%; color:#666; } #grid-content li span a { color:pink; } </style> <link rel="stylesheet" type="text/css" href="/common/css/example.css"></head> <body id='example3' class='example'><div class="ads" style="margin:32px auto;text-align:center;"></div><h1 class='h'><a href='/'>PHP & JavaScript Room</a> :: 設置サンプル</h1> <h3 class='h'>実行結果</h3> <div id="wrap"> <h1>設置サンプル</h1> <p>例:Google APIでFacebookページのウォールのRSSを取得してHTML出力するサンプルです。<br>可変グリット表示は、<a href="http://blog.xlune.com/2009/09/jqueryvgrid.html">jquery.vgrid.js</a>を使用しています。ウィンドウサイズを変えると要素が自動的に並びます。</p> <!-- CODE --> <h2 id="title"></h2> <ul id="grid-content"></ul> <script type="text/javascript" src="http://www.google.com/jsapi?key=ABQIAAAAvABrzCnRluKK0Cj97fTMThTNR7aHVSEFb0WbViWwc6F-_w9PjBSogZu_7UgOTbx25ka46X-fnGmyvw"></script> <script type="text/javascript"> google.load("feeds", "1"); function initialize(){ init("http://www.facebook.com/feeds/page.php?id=153659178017982&format=rss20","grid-content","20"); // CNET Japan } function init(feedurl,obj,feedmax) { var feed = new google.feeds.Feed(feedurl); feed.setNumEntries(feedmax); feed.setResultFormat(google.feeds.Feed.XML_FORMAT); feed.load(function(result) { var container = document.getElementById(obj); var mypage=result.xmlDocument.getElementsByTagName("link")[0].firstChild.nodeValue; $("#title").html("<a href='"+mypage+"pjroom/'>"+result.xmlDocument.getElementsByTagName("title")[0].firstChild.nodeValue+"</a>"); if (!result.error) { var items = result.xmlDocument.getElementsByTagName("item"); var s=""; for (var i = 0; i < items.length; i++) { var title=""; var link=""; var pubDate=""; var desc=""; var author=""; //タイトル if(items[i].getElementsByTagName("title")[0].firstChild) { title=items[i].getElementsByTagName("title")[0].firstChild.nodeValue; } //パーマリンク if(items[i].getElementsByTagName("link")[0].firstChild) { link=mypage+items[i].getElementsByTagName("link")[0].firstChild.nodeValue; } //投稿日時 if(items[i].getElementsByTagName("pubDate")[0].firstChild) { pubDate=items[i].getElementsByTagName("pubDate")[0].firstChild.nodeValue; } //投稿内容 if(items[i].getElementsByTagName("description")[0].firstChild) { desc=items[i].getElementsByTagName("description")[0].firstChild.nodeValue; } //投稿者 if(items[i].getElementsByTagName("author")[0].firstChild) { author=items[i].getElementsByTagName("author")[0].firstChild.nodeValue; } if(title!=""){ s+="<li>"; s+="<div>"+desc+"</div>"; s+="<span><a href='"+link+"'>"+relativeTime(pubDate)+"</a></span> | "; s+="<span>"+author+"</span>"; s+="</li>"; } } $("#grid-content").html(s).vgrid({ easeing: "easeOutQuint", useLoadImageEvent: true, time: 400, delay: 20, fadeIn: { time: 500, delay: 50 } }); } }); } $(function(){ google.setOnLoadCallback(initialize); }); </script> <!-- / CODE --> </div> </body> </html>