« CSSをGreasemonkey用に初期化する | メイン | setTimeoutとsetIntervalの呼び出し方 »

選択範囲を保存するBookmarklet

dataスキームって文字列ならbase64しなくても使えるんですね。知らなかった。よくよく考えてみればなるほどです。ただ、encodeURIComponentは必要。で、こんなBookmarkletを作ってみた。
/*
================================================================================
    Name        :   選択範囲を保存するBookmarklet Ver1.0.0
    In          :   [none]      
    Out         :   [none]      
    Note        :   選択範囲の文字列を保存します。
--------------------------------------------------------------------------------
    Version     :   Ver1.0.0    |   2009/01/10  |   新規作成
--------------------------------------------------------------------------------
    License     :   MIT license
    URL         :   www.kanasansoft.com
================================================================================
*/

(
    function(){
        var
             w=window
            ,d=w.document
            ,s=""
            ;
        if(d.selection){
            s=d.selection.createRange().text
        }else if(d.getSelection){
            s=d.getSelection()
        }else if(w.getSelection){
            s=w.getSelection()
        }
        location.href="data:application/octet-stream,"+encodeURIComponent(s)
    }
)
()
これまでnetで見つけた文章を保存したい時、「[文章を選択]=>[コピー]=>[editorを開く]=>[ペースト]=>[保存]」ってしてて、印刷みたいに「選択範囲を保存」ってのが欲しいなぁって思った事もあったけど、これなら「[文章を選択]=>[Bookmarklet実行]=>[保存]」でいける。ちょっと試しに使ってみたけど便利すぎる。まじでお勧め。ファイル名も指定できれば良いんだけどFirefoxの場合、eventを生成して要素にdispatchしてもhrefの中は解釈してくれないようなので、元記事にあるmalaさんの方法が使えない。後は、textareaなんかに対応したバージョンがあればもっと便利かも。その辺はよく知らないので機会があれば調べて実装するかも。誰か作ってくれないかな。

トラックバック

このエントリーのトラックバックURL:
http://www.kanasansoft.com/cgi/mt/mt-tb.cgi/188

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

Google