Jintrick.netagenda2002年03月アーカイブ → 2002年03月30日

JS移植作業再開

気軽に自作JavaScriptをコンテクストメニューに追加できる(レジストリの書き換えをGUIを通じて行ってくれる)ソフトを発見したので、なんだか面倒臭くて放置していた作業を再開。

なんか、readme.txtには、使ってみれば分かると思います(^^;とあったが、本当にそうだった。必要十分な機能しかないのでメモ帳並に軽い(私見)し、これは大ヒット。

まずは、選択文字列をBLOCKQUOTE要素としてクリップボードにコピーするやつを。

<script defer>
    var w = external.menuArguments;
    var d = w.document;
    var str = d.selection.createRange().text;
    var txt = '<blockquote cite="'
            + d.URL +'" title="'+ d.title +'">\r\r'
            + '<p>'+ str +'<\/p>\r\r<\/blockquote>';
    var t = d.createElement('TEXTAREA');
    t.appendChild(d.createTextNode(txt));
    var rng = t.createTextRange();
    rng.execCommand('Copy');
</script>

「引用としてコピー」記念撮影(20kb)

形式については、とりあえずC:\WINDOWS\Webにあった、MS謹製の frame2new.htm(フレームを新しいWindowで開く)を真似てみた。

こういうのを、拡張子を *.htm にして保存し、紹介したソフトで追加するという手軽さ(【テキスト選択時】にチェックを入れる必要が)。

ご指摘歓迎

clipBoardDataオブジェクトを使わない理由は、今月初めに書いた通り(無効なFORMATETC構造体 (agenda))で、代替手段としてTEXTAREAオブジェクトを生成してしまっています。appendChildもせず、ダミーとして使っているので、MacIEで問題となっているらしい「さまよい生成要素でクラッシュ」という問題が気になります。WindowIEとは別物なんでしょうけど。


webmaster@jintrick.net
公開: 2002年03月30日
カテゴリ: Javascript ,ブラウジング