オフィシャル側で対応頂いたので、このグリモンの必要性は無くなりました。はてなスター日記
twitter上に、はてなスターを置く為のグリモン「つい☆すた」のサイト、「Twitter: What are you doing?」上でtwitterユーザのアイコンが表示されるようにするグリモン書いた。
2008/01/31
JSONでHTMLを取得するYahoo! Pipesが凄い
こりゃすげ。
これまでにも同様の事が出来るサービスはあったけど、Yahoo! Pipesがサポートしたってのは強い。
試しにYahoo! JapanのHTMLをレンダリングするサンプルを作ってみた。
以下コード
URLを渡すとページの内容(htmlソース)をJSONPとかで取得できるAPIをYahoo! Pipesで作った(管理人日記) - むぅもぉ.jpこれで色んなことが出来るようになるし、グリースモンキーに頼っていたクロスドメインな処理がJSONだけで出来るようになる。
Yahoo! PipesにFetch Pageモジュールが追加されたので、さっそく作ってみた。
これまでにも同様の事が出来るサービスはあったけど、Yahoo! Pipesがサポートしたってのは強い。
試しにYahoo! JapanのHTMLをレンダリングするサンプルを作ってみた。
以下コード
<script type="text/javascript"><!--
function on_load_document(data) {
document.getElementById('yahoo_html').innerHTML = data.value.items[0].description;
}
function load_document() {
var url = 'http://www.yahoo.co.jp/';
var s = document.createElement('script');
s.charset = 'utf-8';
s.src = 'http://pipes.yahoo.com/poolmmjp/page_loader?url=' + encodeURIComponent(url) + '&_render=json&_callback=on_load_document';
document.body.appendChild(s);
}
--></script>
<input type="button" onclick="load_document()" value="Yahoo! Japanを表示">
<div id="yahoo_html"></div>
実行結果は↓about: アドレス(バー)から「id naoya」でダイアリーに
はてなTIPS - アドレスから「id naoya」でダイアリーにこんなの使えないかなぁ...
javascript:alert(%s);void 0
これを「js」てキーでレジストリ登録しておけば今まで
javascript:alert(document.getElementById('banner'));void 0
ってやってたオブジェクトの存在確認が
js document.getElementById('banner')
って感じに少し楽になる。単に評価式を返すので
js document.getElementById('banner').innerHTML = 'ばなー';
ってな感じにも使えますね。あと、もうすこし凝ってダイナミックローダ作ってamachangのjavascript-xpath.js使って
xpath //div[@id='foo']//span
なんて事も出来るのかも。もちろんIEなのでtoJSONなんかを実装した方がalertで確認し易いけど...。

