Изменить код, который изменяет слова при нажатии клавиш для работы в contenteditable вместо textarea - PullRequest
1 голос
/ 25 октября 2011

Если здесь есть этот код:

$(function() {
   $("#a").keyup(function(e) {
      var updatedText = this.value.replace(
      /(^|[^>])(hello)($|[^<])/gi, "$1<b>$2</b>$3");
      if (updatedText != this.value)
         this.value = updatedText;
   });
});

Он работает так, чтобы взять последнее набранное слово, которое соответствует RegExp (в данном случае слово hello), и добавляет вокруг него теги <b>.Это отлично работает в Textarea (демо здесь: http://jsbin.com/ibecel/2/edit Но я не могу изменить его для работы в contenteditable div. Как мне нужно изменить его для работы в contenteditable div? Я попытался изменить value возражать против innerHTML и innerText, но безрезультатно. Он всегда теряет фокус после того, как слово набрано, или не выходит из новых сделанных вещей. ПОЖАЛУЙСТА, ПОМОГИТЕ

1 Ответ

0 голосов
/ 27 октября 2011

Я сделал эту модифицированную версию: http://jsbin.com/amazaq/2/edit - innerHTML - это все, что вам нужно.

Однако у вас проблемы с положением курсора. Это более сложная проблема - взгляните на Установить позицию курсора на contentEditable

...