id/name 属性や cite 属性をリンク化する Permalink+
以前、隠れているアンカーをリンク化して表示するブックマークレットというのを作ったことがあるのですが、今回は、
- 要素に id 属性や name 属性が付いている場合は、要素内冒頭に # 印のリンク[href="(id/name 属性値)"]を付加する
- cite 属性を持つ要素がある場合は、要素内の最後に * 印にてリンク[href="(cite 属性値)"]を付加する
…という動作をするものを作ってみました。
Permalink (URI) に対してリンクを張りやすくするためのリンクを付加する Bookmarklet というニュアンスで、 Permalink+ という名前を付けてみました。
ココログの各コメントに対してリンクを張りたい時も、前作同様、便利に使えますが、いろんなサイトで結構便利に使えるかなと思います。*1
ただし、
- 強制的にリンクを挿入しますので、レイアウトは崩れます
- はてなダイアリーのように既に Permalink が豊富にある場合は、邪魔ですw
- a 要素や input 要素、textarea要素などに id/name 属性が付いている場合、妙なことになります
- img 要素など要素内容がないものの場合は、エラーになるのかな?…わかりません
- CSS によっては表示できないこともあるかもしれません
…が、ご愛嬌ということで。
とりあえず、Firefox 1.5 だけで動作確認。
他のブラウザで動かないなどの不具合などありましたら、コメントください。
使い方
下記のダミーリンクをブックマークし、そのプロパティの URL 欄をその下の javascript で差し替えてください。後はリンクを付加したいページを表示させた状態でそのブックマークをクリックすれば OK です。
Permalink+ ←ブックマーク用ダミーリンク
javascript:(function(){var E=document.getElementsByTagName('*');for(var i=0,e;e=E[i];i++){if(e.id||e.name){e.innerHTML='<a href="#'+encodeURI(e.id||e.name)+'">#</a> '+e.innerHTML;}if(e.cite){e.innerHTML+=' <a href="'+encodeURI(e.cite)+'">*</a>';}}})()