気軽に自作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>
形式については、とりあえずC:\WINDOWS\Webにあった、MS謹製の frame2new.htm(フレームを新しいWindowで開く)を真似てみた。
こういうのを、拡張子を *.htm にして保存し、紹介したソフトで追加するという手軽さ(【テキスト選択時】にチェックを入れる必要が)。
clipBoardDataオブジェクトを使わない理由は、今月初めに書いた通り(無効なFORMATETC構造体 (agenda))で、代替手段としてTEXTAREAオブジェクトを生成してしまっています。appendChild
もせず、ダミーとして使っているので、MacIEで問題となっているらしい「さまよい生成要素でクラッシュ」という問題が気になります。WindowIEとは別物なんでしょうけど。