Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Подсветка частей текста по мере появления (https://javascript.ru/forum/misc/65544-podsvetka-chastejj-teksta-po-mere-poyavleniya.html)

Spirtikys 24.10.2016 18:03

Подсветка частей текста по мере появления
 
При вводе текста (в моем случае textarea) и появлении там указанных слов, они должны менять цвет. Я пытался это все обернуть в span, но textarea не воспринимает html теги.

textArea.addEventListener(`keydown`, function () {
        this.value.replace(/#(\w|\d)+/g, function (str) {
            return `<span class="tag">${str}</span>`
        });
    });


Возможно ли вообще это сделать без фреймворков? :help:

рони 24.10.2016 19:11

Spirtikys,
div c contenteditable

Spirtikys 24.10.2016 20:52

Цитата:

Сообщение от рони (Сообщение 432850)
Spirtikys,
div c contenteditable

Пробывал, не реагировал на событие. Хотя может руки у меня не от туда, попробую еще.
Может кто что-то может еще подсказать?

Bond 25.10.2016 02:21

Цитата:

Сообщение от Spirtikys
Пробывал, не реагировал на событие

Скорее всего ошибка была, событие должно срабатывать.

Spirtikys 25.10.2016 08:44

Цитата:

Сообщение от Bond (Сообщение 432886)
Скорее всего ошибка была, событие должно срабатывать.

Да, событие отлавливает, вы правы. Но как и раньше нет эффекта обертки :cray: Поэтому я и решил, когда первую попытку через div делал, что проблема в событии, сейчас перепровели, оказалось, что не в нем.

textArea.addEventListener(`keydown`, function () {
        this.textContent.replace(/#(\w|\d)+/g, function (str) {
            console.log(`change`);
            return `<span class="tag">${str}</span>`;
        });
    });


В функцию заходит, но изменения не производит :( Если же тот же код отработать на обычной строке, все ок :help:

Lemme 25.10.2016 10:24

Spirtikys,
this.innerHTML = this.textContent.....

Spirtikys 25.10.2016 11:17

Цитата:

Сообщение от Lemme (Сообщение 432897)
Spirtikys,
this.innerHTML = this.textContent.....

Спасибо. Отрабатывает, увы, не совсем то, что надо, так как идут скачки при наборе текста, но хотя бы уже что-то есть.


Часовой пояс GMT +3, время: 15:53.