デスクトップに News cloud

Google NewsAPI を利用してリアル・タイムにタグ・クラウドを生成するという NEWZingo*1 というサイトが最近公開され、注目を集めていますね。

このサイトに限らず、こういったニュース系のウェブ・ページがデスクトップの壁紙に出来たらいいな、なんて思いませんか? 私は RSS リーダーというものを知らなかった頃にはよくやっていたんですが、またこういう面白いものが出てきたので、やってみました。

あ、これもまた Windows 限定の話だということをお断りしておかなければなりません。また、Active Desktop*2 が有効になっている必要があります。これは素の XP 等ではオフになっていると思います。有効にする手段は、私は存じませんのでご自分で調べてみてください。

やり方です。

Windows (98 以降) では、デスクトップの壁紙として画像以外に HTML ファイルを選択することができます。このことを利用するのですが、ローカル・ファイルしか選択できない、という点が問題です。

ローカルの HTML ファイルからどうやってネット上のページを表示するか。方法はいくつかあります。

1. META リフレッシュを利用する*3
2. スクリプトを使う。

(2) については、location.href を使ったり、インライン・フレームを使ったりなど、幾つか方法が考えらるでしょう。

最後にスクリーンショットです。壁紙であることを示すためにタスクバー等を前面に出してあります。

Update [20060117]:

単なる見せたがりなんですが、現在の様子です。

同じサイズのタグが並んでいたりすると区別が付きにくいので、背景色と前景色を一つおきに反転させてみました。

css は自前で用意し、タグのスタイル定義を順番に先頭に並べておくことで、タグのサイズに対応するスタイルを簡単に取得できるようにしています (e.g.: stylesheet.rules.item(インデックス).style)。

と言うか、スクリプトでクラス名からスタイル定義を探す方法が分かりませんでした。