菜单

用javascript获取textarea中的光标位置_javascript技巧_脚本之家

2020年2月4日 - 新闻中心

对此写javascript写网页编辑器的人的话,获取textarea中的光标地方是叁个相当关键的题材,而频频很几人在此个地点无所适从,找不到好的不二等秘书诀。即日小编在网络找到了意气风发段javascript代码,本来不想把原版放在那的,就是因为太优越了,怕笔者给改坏了,所以照旧原版放在这呢。
varstart=0; varend=0; functionadd(卡塔尔国{ vartextBox=document.getElementById;
varpre=textBox.value.substr; varpost=textBox.value.substr;
textBox.value=pre+document.getElementById.value+post; } functionsavePos{
//假如是Firefox的话,方法很简短
if(typeof(textBox.selectionStartState of Qatar==”number”State of Qatar{
start=textBox.selectionStart; end=textBox.selectionEnd; }
//上面是IE的法门,麻烦得很,还要总计上’澳门太阳集团,n’ elseif{
varrange=document.selection.createRange(); if.id==textBox.id){
//createaselectionofthewholetextarea
varrange_all=document.body.createTextRange();
range_all.moveToElementText;
//多少个range,七个是早就选取的text,一个是全体textarea
//range_all.compareEndPoints(卡塔尔(قطر‎比较七个端点,借使range_all比range更往左,则//再次回到小于0的值,则range_all往右移一点,直到七个range的start相同。
//calculateselectionstartpointbymovingbeginningofrange_alltobeginningofrange
for(start=0;range_all.compareEndPoints<0;start++)
range_all.moveStart;
//getnumberoflinebreaksfromtextareastarttoselectionstartandaddthemtostart
//计算一下n for{ if(textBox.value.charAt start++; }
//createaselectionofthewholetextarea
varrange_all=document.body.createTextRange();
range_all.moveToElementText;
//calculateselectionendpointbymovingbeginningofrange_alltoendofrange
for(end=0;range_all.compareEndPoints<0;end++) range_all.moveStart;
//getnumberoflinebreaksfromtextareastarttoselectionendandaddthemtoend
for{ if(textBox.value.charAt end++; } } }
document.getElementById.value=start; document.getElementById.value=end;
} 下边是在页面中调用js代码的格局:
此代码的原稿是:
这段js代码同不常间匡助IE和Firefox,甚是优秀,可以预知此人js功力深厚啊,呵呵。
Btw:听他们说Firefox现在的市镇分占的额数已经完结17%了,而IE8也快出来了,浏览器之间又会掀起一场你死笔者活的打视而不见,而这种打架能够使浏览器的剖判典型会越加规范,大家写代码也会更加便捷,那其实是风流倜傥件值得快乐的事。

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图