一直以来没有写东西的习惯,最近在做一个uniapp的demo,发现了一个问题。我想在textarea中在点击的位置插入复制的文字,那么就要获取到光标的位置。项目是用uniapp+uviewUi做的,在uniapp官方的文档中有一个api叫uni.getSelectedTextRange(OBJECT),介绍说在input、textarea等focus之后,获取输入框的光标位置。注意:只有在focus的时候调用此接口才有效。目前仅支持 vue 页面,nvue 可以直接使用 weex 的 getSelectionRange。
官方示例
uni.getSelectedTextRange({
success: res => {
console.log('getSelectedTextRange res', res.start, res.end)
}
})
但是却一直走失败的回调函数。百度了很多方法,都不能正确的获取到光标的位置,最后我把u-input换成了html的textarea标签
js部分
这样就拿到了光标位置。