日期:2014-05-18 浏览次数:20427 次
InputControl = new Object(); InputControl.InsertText = function(text,autoview)//autoview 是否自动滚动视图 { this.focus(); var range = document.selection.createRange(); range.text = text; autoview = autoview ==null ? false : true; range.scrollIntoView(autoview); } //如 InputControl.InsertText.call(yourcontrol,"我要替换",true)
------解决方案--------------------
这是我现在这个项目实现的。
function InputValue(val,num)
{
var txt=document.getElementById("txtComment");
getPos(txt,true,val,num);
}
function BackSpace()
{
var txb=document.getElementById("txtComment");
getPos(txb,false,'',0);
}
//得到光标的位置并实现输入或删除
function getPos(txb,type,val,num)
{
txb.focus();
var slct = document.selection;
var rng = slct.createRange();
txb.select();
rng.setEndPoint("StartToStart", slct.createRange());
var psn = rng.text.length;
rng.collapse(false);
rng.select();
if(type)
{//输入
txb.value=txb.value.substr(0,psn)+val+txb.value.substr(psn,txb.value.length-psn);
setPos(txb,psn+num);
}
else
{//后退
txb.value=txb.value.substr(0,psn-1)+txb.value.substr(psn,txb.value.length-psn);
setPos(txb,psn-1);
}
}
//输入或删除完毕,光标相应移动
function setPos(e,num)
{
var r =e.createTextRange();
r.moveStart('character',num);
r.collapse(true);
r.select();
}