一半是参照别人代码,一半是自己代码,略笨拙,如果有更好的方法希望分享。
- 获取当前光标位置的方法
-
getCaretPosition (obj:any) { //获取输入框中当前光标的位置,obj为此输入框
let $scope = this.$scope;
let $log = this.$log;
$scope.caretPosition = 0;
if (document.selection) {
obj.focus();
var oSel = document.selection.createRange();
oSel.moveStart('character', -obj.value.length);
$scope.caretPosition = oSel.text.length;
}else if (obj.selectionStart || obj.selectionStart == '0'){
$scope.caretPosition = obj.selectionStart;
}
console.log( $scope.caretPosition)
}
2.在当前光标位置处插入字符串
-
insert_flg(oldStr:any,insertStr:any,caretPos:any){
//oldStr:原字符串,insertStr:要插入的字符串,caretPos:要插入的位置
var newstr="";
var tmp1=oldStr.substring(0, caretPos);
var tmp2=oldStr.substring(caretPos,oldStr.length );
newstr+=tmp1+insertStr+tmp2;
return newstr;
}调用时传入的第三个参数就是第一步中获取到的当前光标位置。