PLAYNOTE Blockquote Bookmarklet(俺仕様)

2004年10月03日

Blockquote Bookmarklet(俺仕様)

[ネット・PC] 2004/10/03 16:59

俺仕様の Blockquote Bookmarklet を作ったので公開。選択中の文を自動で <blockquote> で囲んでクリップボードにコピーするスクリプトです。たぶんIE専用。右クリックからお気に入りに登録 or マウス左ボタンでリンクバーにドラッグして使って下さい。詳細は「続きを読む」で。

sundaysoundtrackさんのオリジナル版を元に、もうあっちこっちからソース引っ張ってきて書いたんで今となっては原型を留めていませんが、JavaScriptがわかっていないなりにいろいろ頑張って拡張しました。いろいろバグがありそう…。

  1. フレームページに対応
  2. タグはダイレクトにクリップボードにコピー。
  3. タグにcite要素(引用元のURL情報)を不可→W3C信者もにっこり
  4. 改行ごとに <p> タグで段落を変更
  5. &<> だけは実体参照 &amp;&lt;&gt;に置換

フレームへの対応が相当しんどかった。オリジナル版はフレームを解除しないと動作しないが、俺仕様では一応対応(例外あり)JAVASCRIPT::BOOKMARKLETさんのソースを参考に、何とかでっち上げた。ちゃんとURLも取得します。他の環境でも動くかどうかは不明。

4番の改変がちょっと心名残。本当なら改行一つは<br />、二つ以上で<p>タグにしたかったんだが、どうやっても二つ以上の改行を認識できない。(\r\n){2,}も駄目、一旦<br />に置き換えてから(<br />){2,}も試したが駄目。他もあれこれ試したが全部駄目。やり方知ってる人、いらっしゃいましたら連絡下さい。

一応ソースを表示。見やすいように改行&インデントしてあります。

javascript:(function(){
    function o(s){window.clipboardData.setData('text',s)}
    f=document.frames.length;
    t=document.selection.createRange().text;
    u=document.location.href;
    if(t==''){
        for(i=0;i<f;i++){
            t=document.frames[i].document.selection.createRange().text;
            if(t)break
        } u=document.frames[i].location.href;
    }
    t=t.replace(/&/g,'&amp;');
    t=t.replace(/</g,'&lt;');
    t=t.replace(/>/g,'&gt;');
    t=t.replace(/(\r\n)+/g,'</p>\n<p>');
    o('<blockquote cite=\''+u+'\'>\n<p>'+t+'</p>\n</blockquote>')
})();

なんで最後に何も入ってないかっこがあるの? とか、そもそも最初の function() って何? というレベルなので、ご使用になる場合は自己責任で。

他に作ったもの。

インターネット・アーカイブ検索は割と面白い。昔はこんなデザインだったのかーとかこの頃はこんなこと書いてたのかーとかわかる。デッドリンクの捜索にも便利(デッドリンクと遭遇したときはJAVASCRIPT::BOOKMARKLETさんのGoogle Cache検索も便利)

英辞郎の方は基本的にはトップページから使うサービスみたいなので、こちらも自己責任で。英和・和英両方使える上、例文が豊富なので他のgooだのInfoseekだのの辞書は使ってられねえって話ですよ。

Bookmarkletって何?って人は、適当な単語をマウスドラッグで選択して英辞郎スクリプトのリンクをクリックしてみて下さい。そういうものです。