JavaScriptでRSSをランダム表示する。いまさら。

遂にWWW.AKIRAFUKUOKA.COMにも恐ろしいアフィリエイトの波が…高度化するネットワークを巻き込みながら暴走する資本主義社会はもう誰にも止められn はいフクオカアキラです。お金が儲かるから云々という理由ではなく、単純に何か人にお薦めできるスペースがあったらいいなーということでアフィリエイトスペースを設けました。ランダムでフクオカアキラおすすめのアイテム(ガジェット中心かな)が表示されます。でもあまりにもバナー広告っぽすぎるとつまんないし雰囲気も出ないので、ちょっとしたミニコーナーな感じにしてみました(ダカフェ日記様を参考に…)。あとその下にGoogle Adsenceも付けてみた。けどこっちは実験の意味合いが強い。とりあえず「ガンダム」というキーワードはむっちゃ反応しやすいことはわかった。
で、このランダム表示型アフィリエイトスペースを作るために、「RSS(XML)を読み取りそのエントリーの中からランダムで一つを表示させるJavaScript」が必要だったので作ってみました。ちなみにこのJavaScriptにはJKL.ParseXMLが必要なので事前にダウンロードしておきましょう。JKL.ParseXMLは簡単にいうとXMLを配列にしてくれるもの。これでXMLの扱いがだいぶ楽になります。で、実際に私が書いたJavaScript、pasteAffiliate.jsはこんな感じ。
function pasteAffiliate(id,xml_url){
var url = xml_url;
var http = new JKL.ParseXML( url );
var func = function ( tree ) {
var elem = document.getElementById(id);
var num = Math.floor(Math.random()*tree.rss.item.length);
var desc = tree.rss.item[num].description;
elem.innerHTML = desc;
}
http.async( func );
http.parse();
}
で、実際に使うときはこんな感じにhtmlに貼付けます。
<div id="affiliate"></div>
<script type="text/javascript" src="jkl-parsexml.js"></script>
<script type="text/javascript" src="pasteAffiliate.js"></script>
<script><!--
pasteAffiliate("affiliate","rss.xml");
// --></script>
概要を説明しますと、RSS(rss.xml)を読み込み、その中のエントリーをランダムで選択、選択されたエントリーのdescription部分をhtml(id="affiliate"の部分)に貼付け。こんな具合です。私はJavaScriptに関しては幼稚園の年少組なのでもっと効率のいい方法があるかもですが、このスクリプトはブログではいろいろ使えそう。例えばヘッダー画像をランダムで表示、とか。