js获取光标,设置光标位置

直接贴代码,作为日常开发笔记 

 /*  设置光标位置
    * @params {Object} ele 输入框元素
    * @params {Number} pos 需要将光标设置的位置
    * @author *** 2018/09/29
    * */
    setCaretPosition (ele, pos) {
      if (ele.setSelectionRange) {
        ele.focus()
        /* 选中输入框指定位置文本
        * selectionStart 起始位置
        * selectionEnd 终点位置
        * */
        ele.setSelectionRange(pos, pos)
      } else if (ele.createTextRange) { // IE
        let range = ele.createTextRange()
        range.collapse(true)
        range.moveEnd('character', pos)
        range.moveStart('character', pos)
        range.select()
      }
    },

    /* 获取光标在输入框中相对位置
     * @param {object} [ele] 输入框元素对象(input/textarea)
     * @return {int} 光标所处位置(根据字符长度值)
     * @author *** 2018/09/29
     *  */
    getCaretPosition (ele) {
      let cursorPos = 0
      if (document.selection) { // IE
        const selectRange = document.selection.createRange()
        selectRange.moveStart('character', -ele.value.length)
        cursorPos = selectRange.text.length
      } else if (ele.selectionStart || ele.selectionStart === '0') {
        cursorPos = ele.selectionStart
      }
      return cursorPos
    }

 

你可能感兴趣的:(javascript)