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);
})();
Edit this entry...
wikieditish message: Ready to edit this entry.
A quick preview will be rendered here when you click "Preview" button.