Sep 27, 2007

SiteConfigWikiの情報を使ってはてなスターをくっつけるブックマークレット書いた

頑張って作ろうかと思ったら既にConfigLoaderというのが定義されてたからそれ使うだけで良かった。

Add HatenaStar

JSONをevalしないでクライアントサイドでパースしたほうが安全じゃない?というような話。
http://d.hatena.ne.jp/ku0522/20070927/1190868347

Greasemonkeyみたいに外部ドメインのデータ引っ張ってこれるとは限らないので、JSONPがあること自体は良いことだと思う。JSONPがあるのは設定不要で簡単に貼り付けられるようにするためだと思うけど、動的に取得するようになってるとWikiで挙動を変えられてしまうので危険だと思う。例えばJSONを出力する処理にバグがあった場合とか、凄く処理が重くなるセレクタとかを指定されるとか。あくまでコード生成の補助に使うぐらいがいいんじゃないかなあ、という気がする。

整形済みのソース。HatenaStar.js自体のロード完了を検知するのが面倒くさいのでタイマーで回した。
(function(){
    var l=function(src){
        var s=document.createElement('script');s.charset='utf-8';s.src=src;
        document.getElementsByTagName('head')[0].appendChild(s);
    };
    l("http://s.hatena.ne.jp/js/HatenaStar.js");
    var t = setInterval(function(){
        try{
            Hatena.Star.ConfigLoader.addEventListener('load', function(){
                new Hatena.Star.EntryLoader();
            });
            new Hatena.Star.ConfigLoader();
            clearInterval(t);
        } catch(e){}
    }, 100);
})();
Posted at 22:24 | WriteBacks (12) | Edit
Edit this entry...

wikieditish message: Ready to edit this entry.
















A quick preview will be rendered here when you click "Preview" button.