tumblrのpostからlinkのみ抽出した簡易ブックマーク2007年10月15日 04時09分01秒

なんとなく作ってみた

Tumblr APIアサブロランキング取得で利用させてもらった「Webページ取得JSONP」を組み合わせて、自分のtumblrにlinkでpostしたやつだけ抽出する簡易ブックマークページを作ってみた。なんとなく。

現物はこちら

DOMParserって知らんかったわ

Webページ取得JSONP」のおかげでソースを取得するのはまったく苦労がないんだけど、クロスブラウザでのXMLってほとんどやったことがなかったので、ソース文字列として取得したXMLからどうやってDOMツリーを構築するのかわからなかったんだけど、いろいろ調べたらこんなとこが見つかった。

試してみたら、Firefox2/Opera9/Safari3で動いた。なるほど、IE以外のモダンブラウザは「DOMParser」クラスを実装していると。IE以外。

ま た I E か

なんちゃってラッパーを作る

ブラウザ判別してもいいんだけど、IEとそれ以外って仕切りになるなら、IE向けにラッパーをでっち上げればいいやと思って、

if( typeof( window.DOMParser ) == "undefined" && window.ActiveXObject ) {
  window.DOMParser = Class.create();
  window.DOMParser.prototype = {
    initialize : function() {},
    parseFromString : function(src, type) {
      var result = new ActiveXObject("MSXML.DOMDocument");
      result.loadXML(src);
      return result;
    }
  };
}
なんて具合にでっち上げてみた。といってもparseFromStringメソッドのみの実装だけど。わりとうまくいった。

その他もろもろ

このほか、指定ノードのテキストを取得するのに、またもIEのみ仲間はずれというか明後日の方向だったので、これはノード渡してテキスト返す関数でごまかして、あとキャッシュ対策でTumblr API叩くときにnew Date().valueOf()でてきとーにオレオレパラメータを追加してみた。

あとは現物のソースを参考にしてください。たいしたことしてないけど。format.js使ったりしてるけど、URLの組み立てと日付フォーマットくらいにしか使ってない(し、ソースそのものも小さい)ので、まあ適当に工夫すれば同じようなことできると思います。

蛇足

あとで気が付いたが、「XML を JSON に変換するサービス - ベータ版を公開 :: Drk7jp」使えばもっとラクにできた予感が...orz