ブックマークレットのソースコードの直後に登録用のリンクを追加するブックマークレット
はてなダイアリーは<a href="javascript:〜">
なリンクが書けないので。
javascript:
で始まるPRE要素の直後に、そのソースコードの行頭スペースと改行を取り除いたものをhrefとしたリンクを挿入。
Firefox 3.5で動作確認。6行目のtextContentをinnerTextに書き換えればIEでも動く。一行にするにはBookmarklet BuilderでCompress。
javascript:(function(){ var pres = document.getElementsByTagName('PRE'); var pre, code, p, a; for(var i=0, l=pres.length; i<l; i++) { pre = pres.item(i); code = pre.textContent; if(/^javascript:/.test(code)) { code = code.replace(/(^\s+|\n)/gm, ''); p = document.createElement('P'); a = document.createElement('A'); a.href = code; a.appendChild(document.createTextNode('bookmarklet')); p.appendChild(a); pre.parentNode.insertBefore(p, pre.nextSibling); } } })();
これを使えばわざわざコードをコピペすることなしにドラッグ&ドロップで登録できるようになる...けど挿入されるリンクのテキストが一律(bookmarklet)なので、登録後に名前を変える必要があり、手間は大して変わらなかった。