В общем ситуация такая: есть wysiwyg, пользователь печатает в нем, и как только в тексте появляются какие-то определенные конструкции, их нужно подсвечивать. Я сначала хотел менять body.innerHTML , но наверно не получится т. к. при любом его изменении выделение с wysiwyg-а теряется и непонятно как его вернуть обратно (там просто много всяких тегов появляется при изменении innerHTML и они сильно мешают найти места начала и конца пропавшего выделения). Можно еще создавать Range объект и используя его метод
surroundContents подсвечивать то, что нужно, но перед этим нужно удалить все предыдущие подсветки (текст постоянно меняется, какие-то подсветки должны появляться, другие исчезать, нужно просто при каждом mouseup все чистить и расцвечивать заново), непонятно как все очистить от тегов если нельзя трогать innerHTML. Есть вариант выделить все:
var r = iDoc.createRange();
r.selectNodeContents(iDoc.body);
var sel = regExpTextWin.getSelection();
sel.removeAllRanges();
sel.addRange(r);
и используя
execCommand все очистить:
iDoc.execCommand('RemoveFormat', false, '');
, но опять же нужно как-то обратно вернуть выделение.
Такое ощущение что я велик изобретаю.
Octane, подскажи, пожалуйста, как все это надо делать.