はてなブックマークをSleipnirから登録する

RailsBookmarkletを考えていて、Sleipnir から はてなブックマーク も登録したいなと常々思っていたので、それを確認してみた。どんな風にやってるのか見てみたら、さっきと同じように、登録ページを表示しているだけだった。ブックマークから、うまくいかないっていらいらしていた俺って... orz。

ということで、「スクリプト」->「スクリプトの新規作成」で次のように書けば良さそうです(グレイアウトしているような場合は、多分スクリプトの実行を許可していない場合かなと。ブラウザの動作を制御できるので、デフォルトでOffになってるのかな...。そもそも、変更したか覚えてない)。

var pnir;
var document;
var id;

function getBookmarkLocation(title, url) {
  return 'http://b.hatena.ne.jp/add?mode=confirm&title=' +
    escape(title) + '&url=' + escape(url);
}

pnir     = new ActiveXObject("Sleipnir.API");
id       = pnir.GetDocumentID(pnir.ActiveIndex);
document = pnir.GetDocumentObject(id);

if (document == null)  {
	pnir.MessageBox("Document オブジェクトを作成できません");
}
else {
	// TODO: コードをここに記述してください。
        pnir.NewWindow(getBookmarkLocation(document.title, pnir.URL), false);
	document = null;
}

pnir = null;

これで、アクティブなタブに対するブックマーク登録画面が開いてくれます(ふと思ったのは、escape() を使っているけど互換性のためなのかな...)。