テキストエリアの現在のカーソル(キャレット)位置に文字を挿入するには

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>