直接贴代码,作为日常开发笔记
/* 设置光标位置
* @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
}