用js在TextArea中的光标位置插入内容的方法(比较完美)
做UBB版在线编辑器应该会用到,用js在TextArea中的光标位置插入内容的方法.
国内网上给出的方法简直是误人子弟,外文站上也都不是太完整,雷锋一回,整理了一套比较好的,代码如下:
myField = document.getElementById("文本控件的ClientID");
myValue = "你要插入的内容";
----------------------------------------------------------------------------------
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();
}
}