您的位置:首页 > 编程语言

在光标处插入字符串的实现代码 兼容IE,Firefox

2010-03-23 00:00 701 查看
// 在光标处插入字符串 
// myField 文本框对象 
// 要插入的值 
function insertAtCursor(myField, myValue) 
{ 
//IE support 
if (document.selection) 
{ 
myField.focus(); 
sel = document.selection.createRange(); 
sel.text = myValue; 
sel.select(); 
} 
//MOZILLA/NETSCAPE support 
else if (myField.selectionStart || myField.selectionStart == '0') 
{ 
var startPos = myField.selectionStart; 
var endPos = myField.selectionEnd; 
// save scrollTop before insert 
var restoreTop = myField.scrollTop; 
myField.value = myField.value.substring(0, startPos) + myValue + myField.value.substring(endPos,myField.value.length); 
if (restoreTop > 0) 
{ 
// restore previous scrollTop 
myField.scrollTop = restoreTop; 
} 
myField.focus(); 
myField.selectionStart = startPos + myValue.length; 
myField.selectionEnd = startPos + myValue.length; 
} else { 
myField.value += myValue; 
myField.focus(); 
} 
}

下面是脚本之家演示代码:


// 在光标处插入字符串
// myField 文本框对象
// 要插入的值
function insertAtCursor(myField, myValue)
{
//IE support
if (document.selection)
{
myField.focus();
sel = document.selection.createRange();
sel.text = myValue;
sel.select();
}
//MOZILLA/NETSCAPE support
else if (myField.selectionStart || myField.selectionStart == '0')
{
var startPos = myField.selectionStart;
var endPos = myField.selectionEnd;
// save scrollTop before insert
var restoreTop = myField.scrollTop;
myField.value = myField.value.substring(0, startPos) + myValue + myField.value.substring(endPos,myField.value.length);
if (restoreTop > 0)
{
// restore previous scrollTop
myField.scrollTop = restoreTop;
}
myField.focus();
myField.selectionStart = startPos + myValue.length;
myField.selectionEnd = startPos + myValue.length;
} else {
myField.value += myValue;
myField.focus();
}
}


将鼠标定位到这里的任意位置,然后点击下面的按钮,即可测试效果




[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: