Я пытаюсь что-то сделать, просто для удовольствия, в результате чего я пытаюсь эмулировать подсветку синтаксиса, когда код вводится в текстовое поле на веб-странице.Эмуляция подсветки синтаксиса с помощью Javascript
Я написал небольшой скрипт JS, но он бросает ошибки. "невозможно установить свойство" цвет "неопределенного."
Для этого я создал небольшой массив из нескольких примеров «buzzwords» для поиска введенного кода. Затем я разделил строку кода на массив и зациклил на совпадения между ними. Я не знаком с методом split или действительно методом поиска. Как я могу получить какие-либо соответствия найденным для изменения цвета на экране в режиме реального времени?
function init() {
window.setInterval(function() {
var code = document.getElementById("texty").value;
var buzzword = ["function","()","{","}","[","]",".getElementById",".getElementsByClassName",".style","$"];
for(i=0; i < buzzword.length; i++)
{
var testers = code.split(" ");
for(i =0; i < testers.length; i++)
{
if(buzzword[i] == testers[i])
{
code.search(testers[i]);
code.match(testers[i]).style.color = 'blue';
}
}
}
}, 10000);
}
функция init() выполнена в фокусе текстового поля.
Любая помощь будет оценена, спасибо!
Произвольные строки не имеют стилей, они не являются частью DOM, они просто данные. Вы не можете применить стиль к случайной подстроке значения textarea. Код 'code.match (тестеры [i]). Style.color = 'blue';' никогда не будет работать. – meagar
, продолжая то, что сказал @meagar, поэтому на веб-сайтах, которые форматируют ввод пользователя, обычно есть текстовое поле, в котором вы вводите ввод, а затем в другую область, где вы можете увидеть предварительный просмотр форматированного ввода, например текстовое поле ответа на стек и представление. – Colin
это хороший момент.Любые идеи по коду, которые поймают определенные слова в текстовом поле и окрасят их в сингл в отдельном «предварительном» div? –