Как вы можете переместить курсор перед вставленным текстом в пользовательском текстовом поле в Mozilla? - PullRequest
0 голосов
/ 06 апреля 2011

Я использую Firefox 3.6 (должен быть Firefox 3.6, не должен быть совместимым с браузером) и объект выбора, возвращенный из window.getSelection (). Приведенный ниже код захватывает клавишу табуляции и предотвращает ее вставку из пользовательского текстового поля. Затем вставляется 5 неразрывных пробелов перед курсором. Как сделать так, чтобы курсор переместился в конец вставленных неразрывных пробелов?

content.bind('keydown', function(evt) {
    var TABKEY = 9;
    if (evt.keyCode == TABKEY) {
      var TAB_SPACES = 5;
      evt.preventDefault();
      var sel = window.getSelection();
      var range = sel.getRangeAt(0);
      range.insertNode(document.createTextNode('\u00a0'.times(TAB_SPACES)));
    }
  }, false
);

1 Ответ

0 голосов
/ 11 апреля 2011

Когда вы говорите пользовательское текстовое поле, это делается с помощью contenteditable?Попробуйте это:

var text = document.createTextNode('\u00a0'.times(TAB_SPACES));
range.insertNode(text);
range.setStartAfter(text);
...