Javascript 使用JQuery获取文本框中的光标位置
我想使用JQuery获取文本框中的当前光标位置。在键入或按下鼠标时,使用键盘箭头键可以更改光标位置。有没有办法做到这一点Javascript 使用JQuery获取文本框中的光标位置,javascript,jquery,textbox,Javascript,Jquery,Textbox,我想使用JQuery获取文本框中的当前光标位置。在键入或按下鼠标时,使用键盘箭头键可以更改光标位置。有没有办法做到这一点 var currentCursorPosition = $("#textbox").currentCursorPosition(); 使用Firefox、Safari(以及其他基于Gecko的浏览器),您可以轻松使用textarea.selectionStart,但对于IE来说,这不起作用,因此您必须执行以下操作: 函数getCaret(el){ 如果(el.select
var currentCursorPosition = $("#textbox").currentCursorPosition();
使用Firefox、Safari(以及其他基于Gecko的浏览器),您可以轻松使用textarea.selectionStart,但对于IE来说,这不起作用,因此您必须执行以下操作:
函数getCaret(el){
如果(el.selectionStart){
返回el.selectionStart;
}else if(文档选择){
el.focus();
var r=document.selection.createRange();
if(r==null){
返回0;
}
var re=el.createTextRange(),
rc=re.duplicate();
关于moveToBookmark(r.getBookmark());
rc.setEndPoint('EndToStart',re);
返回rc.text.length;
}
返回0;
}
小提琴:
来源:这个问题已经得到回答,请检查此项
<textarea id="textarea" style="width:80%;height:100px;"></textarea><br/>
<input type="text" id="indicator" style="width:30px;">
var indicator = document.getElementById("indicator");
var textarea = document.getElementById("textarea");
setInterval(function() { indicator.value = caret(textarea);}, 100);
function caret(node) {
if(node.selectionStart) return node.selectionStart;
else if(!document.selection) return 0;
//node.focus();
var c= "\001";
var sel= document.selection.createRange();
var txt= sel.text;
var dul= sel.duplicate();
var len= 0;
try{
dul.moveToElementText(node);
}
catch(e){
return 0;
}
sel.text= txt + c;
len= (dul.text.indexOf(c));
sel.moveStart('character',-1);
sel.text= "";
return len;
}