IE6 では document.selection が有効だが FireFox では無い。
IE6 は入力欄(textarea) に textLength などのプロパティが存在しないが FireFox には有る。
そこで document.selection が真だったら objRange = document.selection.createRange(); して
おき、置換系ボタンが押されたら再び document.selection
を見て有効であれば objRange.text = v; 。無効ならプロパティ textLength,
selectionStart, selectionEnd を元に、入力欄の内容を置換して置き換える。
この方法で IE6 と FireFox の文字列置換の動作共存と、IE6のみだが条件付で Ctrl-Z で Undo でき
た。FireFox では textarea の value に文字列をセットしたとき UNDO できないようだ(将来できるよ
うに変更される可能性はあると思う)。
…が、他ブラウザでまた異なった実装具合のものだと動作変になるでしょうなぁ。実装具合がバラバラなの
がナンとも…。