У меня есть требование к перемещению курсора за символом ввода текста с помощью клавиатуры вправо / влево. Я использую 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);
}
}