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>';}}})()

*1:特に、無為徒食日記さんを閲覧する時には便利です。w