Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用JQuery获取文本框中的光标位置_Javascript_Jquery_Textbox - Fatal编程技术网

Javascript 使用JQuery获取文本框中的光标位置

Javascript 使用JQuery获取文本框中的光标位置,javascript,jquery,textbox,Javascript,Jquery,Textbox,我想使用JQuery获取文本框中的当前光标位置。在键入或按下鼠标时,使用键盘箭头键可以更改光标位置。有没有办法做到这一点 var currentCursorPosition = $("#textbox").currentCursorPosition(); 使用Firefox、Safari(以及其他基于Gecko的浏览器),您可以轻松使用textarea.selectionStart,但对于IE来说,这不起作用,因此您必须执行以下操作: 函数getCaret(el){ 如果(el.select

我想使用JQuery获取文本框中的当前光标位置。在键入或按下鼠标时,使用键盘箭头键可以更改光标位置。有没有办法做到这一点

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;
}