возникли проблемы с JavaScript для IE 11 с методом создания диапазона - PullRequest
0 голосов
/ 06 ноября 2018

У меня есть функция, как показано ниже, в одном из моих старых приложений, она работает нормально в Chrome, но не работает нормально в IE 11. Я попробовал решение "document.getSelection ()", но он не поддерживает метод moveStart. Может кто-нибудь помогите мне переписать код?

      function getCaretPos(element) {             
       var oSel = document.selection.createRange();
        oSel.moveStart('character', -element.value.length);
        return oSel.text.length;
       }

1 Ответ

0 голосов
/ 06 ноября 2018

Для элементов textarea и input вы можете получить положение каретки, используя их свойства selectionStart и / или selectionEnd.
К сожалению, IE11, похоже, не поддерживает свойство selectionDirection, поэтому, если оно имеет значение, вам нужно будет добавить другого слушателя, чтобы узнать выбор.

Демо-версия:

textarea.addEventListener('mouseup', function(){
  console.log("textarea",textarea.selectionStart, textarea.selectionEnd)
})

input.addEventListener('mouseup', function(){
  console.log("input", input.selectionStart, input.selectionEnd)
})
<textarea id="textarea">some text</textarea>
<br>
<input id="input" value="some text"/>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...