iKnow! を改良しよう その3 ~やりなおし~ [NT]
2009/3/3 ~ 2009/3/4 に iKnow! のサイトがリニューアルされ URL も smart.fm へと変わった。さらにデザインも一新された。そのため、iKnow! を改良しよう や iKnow! を改良しよう その2 ~リストの取得~で述べた事が古くなってしまった。
残念。しかし、XPath の使い方を理解したのでより綺麗なコードが書けるかもしれない(し、あまりそうならないかも orz) 。
で、ちょっと改良してみたところ、ver.0.1 レベルのものは出来た。もう少し改良したらスクリプトごと掲載するつもり。cerego 社に怒られないと良いなぁと思う。
閑話休題。
smart.fm の「マイリスト」ではリストが多くなると「前へ」や「次へ」みたいなボタンが表示されるようになる。
このボタンをクリックすると、 UserListUpdater.showLoading() 関数が呼び出されて読み込み中を表す画面が動的に表示され、その後、 new Ajax.Request を使ってサーバからリストの内容を取得しリストが切り替わる。
私としては、リストが切り替わったら、Greasemoneky を再実行して欲しい。 これはどうやったら実現できるだろうか。
showLoading を再定義すれば出来るかなと考えたが、new Ajax.Request からのレスポンスが返ってきてから実行しなければならない。new Ajax.Request の部分にイベントハンドラがあれば、そのイベントハンドラを書き換えてしまえば良いが、smart.fm のコードをちょっと見る限りではどうやっているか掴めていない。
どうしようかなぁー。onclick の内容を再定義してしまえばどうにでもなるけど、もっと良さそうな手があるような気がする。
ちなみに、Ajax.Request は prototype.js にある。
iKnow! を改良しよう その4 ~prototype.js~ へ続く。