最終更新日 2009年03月17日 up top

バナーローテーションをJavaScriptで

普通「バナーのローテーションをやってください」と言われたときは、PHPで

<?
$banner[] = '<a href="url1.html"><img src="banner1.gif"></a><br>';
$banner[] = '<a href="url2.html"><img src="banner2.gif"></a><br>';
$banner[] = '<a href="url3.html"><img src="banner3.gif"></a><br>';

shuffle( $banner );
foreach ( $banner as $value ) echo $value;
?>

とかやったりするが、修正対象のサイトがよくわからんテンプレートエンジンなんか使ってたりすると、 そのテンプレートエンジンのことを調べたりしなきゃいけなくて、むかむかするのでJavaScriptでやる。

<script type="text/javascript">
<!--
function shuffle( list ) {
    var i = list.length;
    while ( -- i ) {
        var j = Math.floor( Math.random() * ( i + 1 ) );
        if ( i == j ) continue;
        var k = list[i];
        list[i] = list[j];
        list[j] = k;
    }
    return list;
}

var banner = new Array(
    '<a href="url1.html"><img src="banner1.gif"></a><br>',
    '<a href="url2.html"><img src="banner2.gif"></a><br>',
    '<a href="url3.html"><img src="banner3.gif"></a><br>'
);

banner = shuffle( banner );
for ( var i in banner ) document.write( banner[i] );
// -->
</script>

僕は会社の机でコカコーラ・ゼロを飲みながらこれを書いて、 夕方仕事が終わると東京タワーに上り、都下を眺めてみたんだ。 君が東京タワーが見えるんなら、僕も君を見える筈だものね。 東京には実にたくさんの灯りが見えた。もちろんどの灯りが君の会社のものかはわからない。 あるものは貧しい家の灯りだし、あるものは大きな屋敷の灯りだ。あるものはホテルのだし、学校のもあれば、病室のもある。 実にいろんな人がそれぞれに生きてたんだ、と僕は思った。そんな風に感じたのは初めてだった。 そう思うとね、急に涙が出てきた。泣いたのは本当に久し振りだった。 でもね、いいかい、君に同情して泣いたわけじゃないんだ。僕の言いたいのはこういうことなんだ。 一度しか言わないからよく聞いておいてくれよ。

僕は・テンプレートエンジンが・嫌いだ。

あと30年も経って、「えーマジ、テンプレートエンジン!?」「キモーイ」「テンプレートエンジンが許されるのは小学生までだよねー」なんて言われていたら、 僕のいま言ったことも思い出してくれ。