Использование Javascript Range для перемещения курсора ввода текста с помощью клавиатуры вправо / влево - PullRequest
0 голосов
/ 09 мая 2019

У меня есть требование к перемещению курсора за символом ввода текста с помощью клавиатуры вправо / влево. Я использую Angular 5 с браузером IE 11. Ниже мой код. Может кто-нибудь, пожалуйста, дайте мне знать, если это правильный подход?

var key = event.which || event.keyCode;
        if(key === 37 || key === 39){        
            event.stopPropagation();     
            let inputDocument = document.getElementById('numericinput');   
            let range = document.createRange();
            range.collapse(true);                       
            let iCaretPos = 0;
            if(key === 39 && this.iCaretPos < inputDocument.innerHTML.length){
                 console.log("inside if");
                 this.iCaretPos = this.iCaretPos +1;
                 range.setEnd(input.firstChild, 0);      
                 range.setStart(input.firstChild, this.iCaretPos);   
            }else if(key === 37 && iCaretPos > 0){
                 console.log("inside else");
                 this.iCaretPos = this.iCaretPos -1;
                 range.setEnd(input.firstChild, 0);      
                 range.setStart(input.firstChild, this.iCaretPos);  
            }  
            window.getSelection().removeAllRanges;      
            window.getSelection().addRange(range);  
    }
}
...