日期:2014-05-16  浏览次数:20375 次

如何在光标出插入字串。点击一个button在textarea中插入[u][/u]同时定位光标在】【之间,在点击另外的一个button插入[a][/a]中间。
兄弟想写一个web编辑器。想实现这的效果。
[u][a]光标[/a][/a]

------解决方案--------------------

// 得到一个文本框控件的当前光标位置
function GetPos(obj)
{
obj.focus();
var workRange=document.selection.createRange();
obj.select();
var allRange=document.selection.createRange();
workRange.setEndPoint( "StartToStart ",allRange);
var len=workRange.text.length;
workRange.collapse(false);
workRange.select();
return len;
}


// 设置一个文本框控件的当前光标位置
function SetCursor(obj,num)
{
  range=obj.createTextRange();
  range.collapse(true);
  range.moveStart( 'character ',num);
  range.select();
}

//选定文本
function SelectText(box,sp,ep)
{
sp = parseInt(sp)
ep = parseInt(ep)

if(isNaN(sp)||isNaN(ep))
return;

var rng = box.createTextRange();

rng.moveEnd( "character ",-box.value.length)
rng.moveStart( "character ",-box.value.length)

rng.collapse(true);

rng.moveEnd( "character ",ep)
rng.moveStart( "character ",sp)

rng.select();
}


var pos=GetPos(textBox);
textBox.value=textBox.value.substring(0,pos)+ '要插入的字符串 '+textBox.value.substring(pos);
SelectText(textBox,pos,pos+ '要插入的字符串 '.length);