Javascriptをはじめ、Ajax、jQueryの著書多数のガイドが、何かと最近騒がれているJa…
北欧好きが、愛用の北欧モノを見せ合うコミュニティ
Javascript関連情報
更新日:2007年04月27日
YUIによるアニメーションエフェクトとGoogle AJAX Feed APIを組み合わせて、別ドメインからのRSSフィード読み込みを試してみます。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
<title>GAF API + YUI</title>
<!-- YUI -->
<script type="text/javascript" src="../yahoo-min.js"></script>
<script type="text/javascript" src="../animation-min.js"></script>
<script type="text/javascript" src="../event-min.js"></script>
<script type="text/javascript" src="../dom-min.js"></script>
<script type="text/javascript">
<script type="text/javascript">
//YUIインスタンス用の配列
var myAnim = [];
//YUIアニメーションでフェイドイン
function outputData(id){
//クリック用の[+]/[-]リンク
var $adiv=document.getElementById(id);
if($adiv.innerHTML=="[+]"){
//[+]のときに実行します
$adiv.innerHTML="[-]";
myAnim[id+"p"] = new YAHOO.util.Anim(id+"d",{opacity:{from:0,to:1}},1);
myAnim[id+"p"].onTween.subscribe(function (){divOpenClose(id,true);});
myAnim[id+"p"].animate();
}else{
//[-]のときに実行します
$adiv.innerHTML="[+]";
myAnim[id+"m"] = new YAHOO.util.Anim(id+"d",{opacity:{from:1,to:0}},0.3);
myAnim[id+"m"].onComplete.subscribe(function (){divOpenClose(id,false);});
myAnim[id+"m"].animate();
}
}
//出力用DIVのCSS
function divOpenClose(id,swt){
var $ddiv=document.getElementById(id+"d");//出力用DIV
$ddiv.style.display=(swt)?"block":"none";
$ddiv.style.fontSize=(swt)?"0.8em":"0px";
$ddiv.style.height=(swt)?"100px":"0px";
$ddiv.style.width=(swt)?"340px":"0px";
$ddiv.style.margin=(swt)?"4px":"0px";
$ddiv.style.padding=(swt)?"8px":"0px";
$ddiv.style.backgroundColor=(swt)?"#eee":"#fff";
}
</script>
<!-- Google AJAX Feed API -->
<script type="text/javascript"
src="http://www.google.com/jsapi?key=ここへ自分のキーをコピーします"></script>
<script type="text/javascript">
//読み込むRSS
var RSSurl="http://allabout.co.jp/internet/javascript/rss/index.xml";
//feeds APIのバージョン1を指定
google.load("feeds", "1");
//初期化
function initialize() {
var feed = new google.feeds.Feed(RSSurl);
feed.load(function(result) {
if (!result.error) {
//出力用DIV
var container = document.getElementById("feed");
//受信したRSS JSONデータresult.feed.entriesを処理します
for (var i = 0; i < result.feed.entries.length; i++) {
var entry = result.feed.entries[i];
//タグ無効化例
//(ただしGAF APIではscriptは無効化された上で転送されて
// きますのでほとんど不要です)
//すべてのタグを一時無効
//var content = entry.content.split('<').join('<');
//imgタグのみ許可
//content= content.split('<img').join('<img');
//RSSの各タイトル
var div = document.createElement("div");
div.appendChild(document.createTextNode(entry.title));
//起動用リンク
var a=document.createElement("a");
a.setAttribute("id","testLink"+i);
a.setAttribute("href","javascript:outputData('"+a.id+"')");
a.appendChild(document.createTextNode("[+]"));
div.appendChild(a);
//出力用DIV
var d=document.createElement("div");
d.setAttribute("id",a.id+"d");
d.style.display="none";
d.innerHTML=entry.content;
div.appendChild(d);
container.appendChild(div);
}
}
});
}
//window.onloadのエミュレーション(引数initializeを実行します)
google.setOnLoadCallback(initialize);
</script>
</head>
<body>
<!-- ここへ出力 -->
<div id="feed"></div>
</body>
</html>
人気Javascriptランキング
Powered by 価格.com
北欧好きが、愛用の北欧モノを見せ合うコミュニティ