JS / jQuery: изменить содержание div contenteditable и переориентировать - PullRequest
0 голосов
/ 29 марта 2011

Моя цель:

Чтобы иметь возможность добавлять / изменять контент внутри моего контента, редактируемый пользовательский ввод div на "keyup" и иметь возможность перефокусировать его так, чтобы пользователь не былinterupted.

Моя проблема:

Содержимое Редактируемый div не может правильно перефокусироваться.

Мой пример:

http://jsbin.com/owoto4/4/

1 Ответ

0 голосов
/ 29 марта 2011

Я нашел решение, более эффективное, чем метод .focus ():

  $.fn.placeCaretAtEnd = function(){
    var el = $(this)[0];
    el.focus();
    if (typeof window.getSelection != "undefined"
      && typeof document.createRange != "undefined") {
      var range = document.createRange();
      range.selectNodeContents(el);
      range.collapse(false);
      var sel = window.getSelection();
      sel.removeAllRanges();
      sel.addRange(range);
    } else if (typeof document.body.createTextRange != "undefined") {
      var textRange = document.body.createTextRange();
      textRange.moveToElementText(el);
      textRange.collapse(false);
      textRange.select();
    }
  }

ПРИМЕНЕНИЕ:

$('#myContenteditable').placeCaretAtEnd();
...