因為我想要捕捉使用者游標的位置,所以我設定了一個cursor object
function cursor (e) {
this.e = e;
this.prefix = e.value.substring(0, e.selectionStart);
this.suffix = e.value.substring(e.selectionEnd);
this.start = e.selectionStart;
this.insertTextInCursor = function(text){
this.e.value = this.prefix + text + this.suffix;
codeboard.setSelectionRange(this.start+text.length,this.start+text.length);
}
}
利用event(e)內的數值來儲存原本的文字(prefix+選取的範圍+suffix),而start則為游標的目前位置設定+text.length則會在你插入新的文字之後,游標就會自動移動到插入文字後的位置。
裡面只有一個method用來在游標的位置插入,
把滑鼠和鍵盤對textarea做操作時候的event設定好,使得他在每次受到改變範圍的時候,都會重新建立一個位置以保持正確的位置就可以了(範例使用jQuery)
$("#codeboard").mouseup(function(){
cur = new cursor(codeboard);
})
.keydown(function(e){
cur = new cursor(codeboard);
});
沒有留言:
張貼留言