一半是參照別人代碼,一半是自己代碼,略笨拙,如果有更好的方法希望分享。
- 獲取當前光標位置的方法
-
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; }
調用時傳入的第三個參數就是第一步中獲取到的當前光標位置。
