js在当前光标处插入特定字符 兼容ie、火狐、谷歌、360、NETSCAPE等浏览器

本文介绍了一种在JavaScript中实现在文本框光标位置插入特定字符的方法,并提供了一个具体的实现示例。该方法适用于IE及多种现代浏览器,如火狐、谷歌等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

js在当前光标处插入特定字符:

在网上看到好多文章介绍的很麻烦,而且又不好用,这里最简便的就是:
document.all("sendNoRegex").focus();
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();
}



不过以上方法仅支持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();
}

}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值