カーソル位置取得

IEはselectionStartが使えないのでその対策が必要。
現時点では以下のようにした。

function getpos(obj){
  if(obj.selectionStart != undefined) return obj.selectionStart;
  var range = document.selection.createRange();
  if(obj.type == 'textarea'){
    var clone = range.duplicate();
    clone.moveToElementText(obj);
    clone.setEndPoint('EndToEnd', range);
    return clone.text.length - range.text.length;
  }else{
    var textRange = obj.createTextRange();
    textRange.setEndPoint('EndToStart', range);
    return textRange.text.length;
  }
}

これでやっと俺lispの以下の機能の(IE非対応)の注記を消すことができる。

カーソル移動にあわせて対応する括弧を表示(IE非対応)。

http://kar.s206.xrea.com/lisp/

参考サイト

Javascriptで選択範囲の始点、終点を取得する

http://blog.es-sow.net/2009/05/26/

IE、テキストエリア内の選択範囲/キャレットの位置(文字数)を取得する

http://d.hatena.ne.jp/brazil/20061021/1161377936