テキストエリアの現在のカーソル(キャレット)位置に文字を挿入するには
jQuery とかで簡単にできるんじゃないかと検索してたら以下のページがヒットした。
http://stackoverflow.com/questions/946534/insert-text-into-textarea-with-jquery
http://d.hatena.ne.jp/project_the_tower2/20071228/1198785069
試行錯誤して、以下のサンプルができた。(IE8 と FF3 で確認)
<form> <textarea id="area"></textarea> <input type="button" id="insert" value="挿入"> </form> <script type="text/javascript" src="jquery-1.3.2.min.js"></script> <script type="text/javascript"> $.fn.extend({ insertAtCaret: function(v) { var o = this.get(0); o.focus(); if (jQuery.browser.msie) { var r = document.selection.createRange(); r.text = v; r.select(); } else { var s = o.value; var p = o.selectionStart; var np = p + v.length; o.value = s.substr(0, p) + v + s.substr(p); o.setSelectionRange(np, np); } } }); $('#insert').click(function() { $('#area').insertAtCaret('aaaa'); }); </script>