javascript获取光标位置以及设置光标位置

在项目开发中经常遇到input等设置光标位置到最后的问题,今天我查了一下Google,找到了在IEFirefoxOpera等主流浏览器的获取光标位置(getCursortPosition)以及设置光标位置(setCursorPosition)的函数。

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

PS:参数ctrl为input或者textarea对象

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

PS:参数ctrl为input或者textarea对象,pos为光标要移动到的位置。
深入阅读推荐:《javascript设置光标位置到结尾并显示出来