Opera9.5以降でURL、タイトルと選択範囲をクリップボードにコピー

<動作内容>選択範囲のテキストと、選択範囲を含むページのURLおよびタイトルを引用タグ(blockquote)で閉じた状態の文字列を、JavaScriptで以下のように整形し、クリップボードにコピーする。

http://my.opera.com/kyu3/blog/2008/06/22/opera-2

を参考に、はてなの引用記法のように、citeとtitle属性を追加してみた。

Go to page, "javascript:window.prompt('',((window.getSelection()+'')?('<blockquote title=\x22'+document.title+'\x22 cite=\x22'+location.href+'\x22>'+window.getSelection()+'\n\t<cite>'):'')+'<a href=\x22'+location.href+'\x22>'+document.title+'</a>'+((window.getSelection()+'')?'</cite>\n</blockquote>':''));" & Delay, 10 & Copy & Cancel

なにも選択してない場合はblockquoteは出ないようにもしてある。
ただ、はてなと使うとciteをリンク化したやつが重複するので、こっちのほうが良いかな。

Go to page, "javascript:window.prompt('',((window.getSelection()+'')?('<blockquote title=\x22'+document.title+'\x22 cite=\x22'+location.href+'\x22>'+window.getSelection()+'\n</blockquote>'):'<a href=\x22'+location.href+'\x22>'+document.title+'</a>'));" & Delay, 10 & Copy & Cancel

これをショートカットの編集で、Application(ここが良いのかはわからない、たぶん良くない!)のところにc shiftで登録してみた。


ついでに、選択範囲をHTMLタグ付きでコピーするバージョン。

Go to page, "javascript:window.prompt('',((window.getSelection()+'')?('<blockquote title=\x22'+document.title+'\x22 cite=\x22'+location.href+'\x22>'+(new XMLSerializer).serializeToString(window.getSelection().getRangeAt(0).cloneContents())+'\n\t<cite>'):'')+'<a href=\x22'+location.href+'\x22>'+document.title+'</a>'+((window.getSelection()+'')?'</cite>\n</blockquote>':''));" & Delay, 10 & Copy & Cancel

選択範囲のHTML化はgetSelection()でHTMLを取り出す - ロックスターになりたいDOM Elementオブジェクトをテキストダンプしてデバッグ - hogehogeを参考にこんな感じ。

javascript:alert((new XMLSerializer).serializeToString(window.getSelection().getRangeAt(0).cloneContents()));

選択範囲のソースを見るって、ワンライナーでできるんですね。