選択範囲の文字の変換

よその人のコードを見たり検索して調べたりしても、何やってんだか何言ってんだかわからないので、霊感ヤマ勘第六勘でやってみたところ

var ran = document.selection.createRange();
var str = ran.text;

ran.text = '<b>' + str + '</b>';

IEではこれで選択範囲の文字にbタグを付けることができた。


よその人のコードと比較してみると明らかに記述内容が足りない様子だけど、これで出来たわけだからもーこれでいいですわ。

追記

上記の場合はテキストエリアなどのテキストしか書き換えられない。
選択した範囲のテキストのソースを書き換えるのに

var ran = document.selection.createRange();
var str = ran.htmlText;

ran.htmlText = '<b>' + str + '</b>';

で出来ると思ったけど無理だった。


htmlTextではなく、pasteHTMLというのを使えば出来た。

var ran = document.selection.createRange();

ran.pasteHTML('<span style="background-color:#ff0">' + ran.htmlText + '</span>');

↑の例は選択範囲の背景色を黄色に。