引用マークアップを生成

他のウェブページから文を引用するときは、元文書のHTMLマークアップもなるべくそのままで引用しておきたいものです(と、いう前提で取り敢えずお願いします)。しかしいちいち引用元ページのソースを開いてコピー&ペーストし、更にリンクやらblockquoteやらを書いていくのは面倒なので、そのへんをまとめてやってくれるbookmarkletを作ってみました。

FirefoxなどのMozilla系ブラウザ用です。

* * *

作っている途中で、Camino べんりセット選択部分のソースにも同様の機能があったのに気付いたのですが、自分なりに作ってみて色々学んだこともあったので取り敢えず置いておきます。

* * *

a要素であるノードAhref属性の値を、A.href で得るのと A.getAttribute('href') で得るのとは違ってくることを知りました。A.getAttribute('href')の値が相対URIであっても、A.hrefの値は必ず絶対URIになるみたいです。以下、DOM2 HTMLでのHTMLAnchorElementのhref属性の説明より引用。

href of type DOMString
The absolute URI [IETF RFC 2396] of the linked resource.

これを利用して、相対URIの属性値を絶対URIに変更する処理を付け加えることができました。

追記(2005年9月3日)

フレームがあっても動作するようにしました。但し、フレーム分割されている時は、文字列が選択されていないとマークアップを表示しません。あと、インラインフレームは無視されます。

追記(2005年9月9日)

hxxk.jp - 「選択箇所を blockquote 」の導入手順や使用方法や注意点のまとめで画像付きの紹介を頂きまして(有難うございます)、そこでのlevaさんのコメントを受け、マークアップを表示したときにその部分を選択状態にするようにしました。

追記(2005年12月21日)

Firefox 1.5で、引用マークアップに名前空間宣言(xmlns="http://www.w3.org/1999/xhtml")が入らないように変更しました。