如何在光标出插入字串。点击一个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);