Я работаю над проектом чата и в основном закончил все, что мне было нужно.Мой блок чата - это текстовое поле, и по большей части он работает, пока я не хотел реализовать изменение цвета определенных слов в окне чата с помощью регулярных выражений.
Но, глядя на то, как я это настроил:
function writeMessageToChatBox(message, from, serverMessage=false, direct=false){
let chat_box = $('#chatbox');
let val = chat_box.val();
if(!serverMessage){
if(direct){
console.log(replay);
if(replay){
chat_box.val(val + '[Whisper to: ' + tempRecepient + ' ] ' + from + ": " + message + "\n" );
replay = false;
tempRecepient = undefined
}
else{
chat_box.val(val + '[Whisper from: ' + from + ' ] ' + from + ": " + message + "\n" );
}
}
else{
chat_box.val(val + from + ": " + message + "\n");
}
}
else{
chat_box.val(val + message + "\n");
}
chat_box.scrollTop(document.getElementById("chatbox").scrollHeight);
Я пришел к выводу, что текстовые области содержат текст внутри них в своем значении, но текст не является элементами внутри текстовой области, поэтому я не могу выбрать, какой текст получает стиль.Из некоторых исследований я понял, что то, что я пытаюсь сделать, невозможно с текстовой областью.Какой еще вариант, я полагаю, контейнер div, который может содержать текстовые элементы?