IE8-如何获取input光标所在位置(selectionstart)
IE9+和标准浏览器支持输入对象的selectionStart属性,可以获取到光标所在输入空间中的位置,IE8-要想获取光标所在位置(selectionstart属性),需要使用range对象。
IE8-如何获取input光标所在位置(selectionstart)源代码如下
<input type="text" id="txt" value="1234567" /> <input type="button" value="获取text光标位置" onclick="alert(getCaret(document.getElementById('txt')))" /> <script> function getCaret(el) { if (el.selectionStart) {//IE9-或者标准浏览器 return el.selectionStart; } else if (document.selection) {//IE8-或者支持selection对象的浏览器 el.focus(); var r = document.selection.createRange(); if (r == null) { return 0; } var re = el.createTextRange(), rc = re.duplicate(); re.moveToBookmark(r.getBookmark()); rc.setEndPoint('EndToStart', re); return rc.text.length; } return 0; } </script>
代码来源:http://stackoverflow.com/questions/263743/caret-position-in-textarea-in-characters-from-the-start
或者
javascript获取输入对象光标位置
function getCursortPosition (ctrl) { var CaretPos = 0; // IE Support if (document.selection) { ctrl.focus (); var Sel = document.selection.createRange (); Sel.moveStart ('character', -ctrl.value.length); CaretPos = Sel.text.length; } // Firefox support else if (ctrl.selectionStart || ctrl.selectionStart == '0') CaretPos = ctrl.selectionStart; return (CaretPos); }
javascript设置输入对象光标位置
function setCaretPosition(ctrl, pos){ if(ctrl.setSelectionRange) { ctrl.focus(); ctrl.setSelectionRange(pos,pos); } else if (ctrl.createTextRange) { var range = ctrl.createTextRange(); range.collapse(true); range.moveEnd('character', pos); range.moveStart('character', pos); range.select(); } }
来源:http://www.oschina.net/code/snippet_4873_3394
加支付宝好友偷能量挖...