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
最近のコメント