js在当前光标处插入特定字符:
在网上看到好多文章介绍的很麻烦,而且又不好用,这里最简便的就是:
document.all("sendNoRegex").focus();
var sel = document.selection.createRange();
var sel = document.selection.createRange();
sel.text='"年份"';
以下是我在实际应用中的一个实例:
function addRegex(re){//点击添加字号范例和字号表达式jiangkun
var snText=$('#sendNo').text();
var snrVal=$('#sendNoRegex').val();
if(snText=='(XX/L)【'+year+'】(0001)'){$('#sendNo').empty();}
document.all("sendNoRegex").focus();
var sel = document.selection.createRange();
if(re=='year'){
sel.text='"年份"';
}else if(re=='snumber'){
sel.text='###';
}else if(re=='('||re==')'||re=='['||re==']'||re=='【'||re=='】'||re=='/'){
sel.text=re;
}
var sen=$('#sendNoRegex').val();
$('#sendNo').empty().append(sen);
changeSpecial();
}
var snText=$('#sendNo').text();
var snrVal=$('#sendNoRegex').val();
if(snText=='(XX/L)【'+year+'】(0001)'){$('#sendNo').empty();}
document.all("sendNoRegex").focus();
var sel = document.selection.createRange();
if(re=='year'){
sel.text='"年份"';
}else if(re=='snumber'){
sel.text='###';
}else if(re=='('||re==')'||re=='['||re==']'||re=='【'||re=='】'||re=='/'){
sel.text=re;
}
var sen=$('#sendNoRegex').val();
$('#sendNo').empty().append(sen);
changeSpecial();
}
不过以上方法仅支持ie浏览器,采用以下方式可以兼容ie、火狐、谷歌、360、NETSCAPE等浏览器
function insertAtCursor(myField, myValue) {
if(document.selection){//IE support
document.getElementById("sendNoRegex").focus();
sel = document.selection.createRange();
sel.text = myValue;
sel.select();
}else if(sendNoRegex.selectionStart || sendNoRegex.selectionStart == '0'){//MOZILLA/NETSCAPE support
var startPos = sendNoRegex.selectionStart;
var endPos = sendNoRegex.selectionEnd;
// save scrollTop before insert
var restoreTop = sendNoRegex.scrollTop;
sendNoRegex.value = sendNoRegex.value.substring(0, startPos) + myValue + sendNoRegex.value.substring(endPos,sendNoRegex.value.length);
if (restoreTop > 0){
// restore previous scrollTop
sendNoRegex.scrollTop = restoreTop;
}
sendNoRegex.focus();
sendNoRegex.selectionStart = startPos + myValue.length;
sendNoRegex.selectionEnd = startPos + myValue.length;
}else{
sendNoRegex.value += myValue;
sendNoRegex.focus();
}
document.getElementById("sendNoRegex").focus();
sel = document.selection.createRange();
sel.text = myValue;
sel.select();
}else if(sendNoRegex.selectionStart || sendNoRegex.selectionStart == '0'){//MOZILLA/NETSCAPE support
var startPos = sendNoRegex.selectionStart;
var endPos = sendNoRegex.selectionEnd;
// save scrollTop before insert
var restoreTop = sendNoRegex.scrollTop;
sendNoRegex.value = sendNoRegex.value.substring(0, startPos) + myValue + sendNoRegex.value.substring(endPos,sendNoRegex.value.length);
if (restoreTop > 0){
// restore previous scrollTop
sendNoRegex.scrollTop = restoreTop;
}
sendNoRegex.focus();
sendNoRegex.selectionStart = startPos + myValue.length;
sendNoRegex.selectionEnd = startPos + myValue.length;
}else{
sendNoRegex.value += myValue;
sendNoRegex.focus();
}
}