Предположим, у меня есть тег pre
, который можно редактировать, и кнопка, например:
<code><pre id="input" contenteditable>
hello world!
how is everything today?
I like cherries
Когда нажата кнопка colorify
, я бы хотел, чтобы текст чередовался между тремя разными цветами за символом. Это должно выглядеть примерно так:
Это мое намерение, выраженное в псевдо-Javascript:
$("#colorify").click(function() {
var input = $("#input"), text = input.text(),
colors = ["#FF0000", "#00FF00", "#0000FF"];
for (var i = 0; i < text.length; i++) {
input.changeColorOfRange(i, 1, colors[i % 3]);
}
});
К сожалению, нет функции changeColorOfRange
, которая принимала бы индекс символов, длину строки и цвет для этого.
Я видел RTF-редакторы в Javascript и изучил некоторые из их API-интерфейсов, но, похоже, они только позволяют изменять цвет выделенного текста вместо программного изменения цвета произвольных областей текста.
Как программно изменить цвет произвольных областей текста внутри contenteditable элемента?