JSONScriptRequest-0.02[Ajax][JSON][API]

参考:JSONScriptRequest.js:XMLHttpRequestの代わりに<script>を使って通信するライブラリ
参考:JSONScriptRequest.js:XMLHttpRequestの代わりにscript要素を使って通信するライブラリ
XMLHttpRequestのようにJSONP(Remote JSON)APIの呼び出しを行なうJSONScriptRequest-0.02JSANにアップしました。
0.02ではThe XMLHttpRequest Objectをそれなりに実装してみました。バグレポート・パッチ大歓迎です。
0.01はIEで動かなかった(←オ㍗ル)と思いますが、0.02では動くはずです。(0.02はまだ上がってませんが数時間後には上がると思います。上がったらここでお知らせします)
ここで色々やりたいんですけど、HatenaDiaryはJavaScript使えないんですよね。残念。

SYNOPSISとして、はてなブックマークエントリー情報取得APIを実際に使用してみました。このままHTMLとして保存してブラウザで見れば実際に動きます。(もちろんIEでも動きます^^;)

<html>
  <head>
    <script type="text/javascript" src="http://www.openjsan.org/src/y/yo/yoshida/JSONScriptRequest-0.02/lib/JSONScriptRequest.js"></script>
    <script type="text/javascript">

window.onload = function() {
    var url = 'http://d.hatena.ne.jp/holidays-l/20061002/p1';
    var req = new JSONScriptRequest();
    req.open('GET', 'http://b.hatena.ne.jp/entry/json/?url=' + encodeURIComponent(url));
    req.onreadystatechange = function() {
        if (this.readyState == 4) {
            var debug_info = document.createTextNode(JSONScriptRequest._toSource(this.responseJSON));
            document.body.appendChild(debug_info);
        }
    };
    req.send();
}

    </script>
  </head>
  <body>
  </body>
</html>

結果は

({count:"6", url:"http://d.hatena.ne.jp/holidays-l/20061002/p1", bookmarks:[{timestamp:"2006/10/21 22:43:19", comment:"", user:"qptaro", tags:["javascript", "ajax", "json", "jsonp"]}, {timestamp:"2006/10/21 18:29:35", comment:"", user:"hamasta", tags:["JavaScript", "JavaScript-JSON"]}, {timestamp:"2006/10/21 13:43:34", comment:"", user:"ziguzagu", tags:["javascript"]}, {timestamp:"2006/10/21 01:41:04", comment:"JSONP、スクリプトエレメント埋め込みにより通信、XMLHttpRequest/XHRのインターフェースを利用(同名メソッド)、jsonapi?cb=JSONScriptRequest._dispatchers[0]", user:"brazil", tags:["4", "JAVASCRIPT"]}, {timestamp:"2006/10/09 17:07:02", comment:"", user:"lieutar", tags:["javascript"]}, {timestamp:"2006/10/02 14:03:22", comment:"", user:"higeorange", tags:["ajax", "javascript", "json", "jsonp"]}], title:"holidays-l - JSONScriptRequest.js:XMLHttpRequestの代わりにscript要素を使って通信するライブラリ", eid:"2905229", entry_url:"http://b.hatena.ne.jp/entry/http://d.hatena.ne.jp/holidays-l/20061002/p1", screenshot:"http://screenshot.hatena.ne.jp/images/120x90/b/6/e/1/e/ce94a2a978a7498681f34af9fefc81a6f2a.jpg"})

のようになると思います。