いさぢちんメモ

d.hatena.ne.jp/mosshm/より移行。

はてブ2

menu.iniへはてなブックマーク - セットアップにあるブックマークするブックマークレットを追加しようと思った。

いつもの様にダブルクォーテーションは\x22、%20はスペースだから\x20に置き換えてみたけど動かず。ちょっと悩んだんだけど、もっと単純に%20はただスペースにしてダブルクォーテーションはシングルクォーテーションにしたら動作した。

[Document Popup Menu]
Item, "はてなブックマークBetaで追加"="Go to page, "javascript:(function(){var s=document.createElement('script');s.charset='UTF-8';s.src='http://bbeta.hatena.ne.jp/js/Hatena/Bookmark/let.js';document.getElementsByTagName('head')[0].appendChild(s);})();""

2008-11-22 追記

はてなブックマーク - セットアップブックマークレットが変更されて、ダブルクォーテーションを含まないものになったおかげで、修正しなくても利用出来るようになりました。はてなが修正してくれたのはこちらのエントリのおかげかも。→岩家ぶろぐ » [opera][javascript] Operaで新はてなブックマーク(β)のブックマークレットが動かない件とその対策

このエントリのブクマコメントにも書いたけど、Operaでアドレスフィールドへ入力すると動くけれどツールバーなどへ配置すると動作しなくなるのは、toolbar.iniなどではアクションのパラメータをダブルクォーテーションでくくっているため、ブックマークレットにダブルクォーテーションが含まれていると、そこで途切れてしまうのが原因だと思います。

以前のはてブBetaのブックマークレットD&Dツールバーに配置すると、toolbar.iniへ以下のように追加されていたはずです。

Button17, "default"=Go to page, "javascript:(function(){var%20s=document.createElement("script");s.charset="UTF-8";s.src="http://bbeta.hatena.ne.jp/js/Hatena/Bookmark/let.js";document.getElementsByTagName("head")[0].appendChild(s);})();", 1

Go to pageというアクションのパラメータに件のブックマークレットが入力されているわけですが、これがダブルクォーテーションで括られているため、ブックマークレット中で最初に出現するダブルクォーテーションをパラメータの終わりと認識してしまい、結果としてjavascript:(function(){var%20s=document.createElement(までしか実行されなかった、と。なので、こういったブックマークレットを利用するときはいつもダブルクォーテーションをシングルクォーテーションに置き換えたりするわけです。

これよりもっと楽な方法は、ブックマークレットをブックマークする際にニックネームをつけておいて

Go to page, "nickname"

みたいに書くと問題なく動作しますし、今回のように後からブックマークレットを変更するのにもtoolbar.iniを書き換えずに済むのでいいかもしれません。

補足

toolbar.iniの書式はだいたいこんな感じ。

Button00, "タイトル"=Action, "param1", "param2", "text", "icon"

iconにはスキンのzipファイルに含まれるskin.iniの[Images]セクションで定義した文字列を入力することで、ボタンのように画像を表示させることが出来ます。

ショートカットキーではてブブックマークレットを利用する

やっぱりOperaを使おう。そうしよう。 - killer*killer*engineer

僕はコンテキストメニュー派なのでkeyboard.iniまわりはあまりいじらないんだけど、試しにこちらのエントリで書かれていることを真似てみたら超便利でした。