Нет, я все преобразования на клиенте делаю, просто получаю все
<textarea class = "marked"></textarea>
и их заменяю на другие созданные элементы.
А почему так хуже? Мне кажется это удобно, просто требующий изменения текст помещать в textarea с нужным классом
<textarea class = "marked">
<span>
var a = "<span style = \"color: red\">";
</textarea>
Примерно так делаю
(function(){
var textareas = document.getElementsByTagName("TEXTAREA"), i = textareas.length;
var markedSnippets = [], snippet, text;
while(i --){
snippet = textareas[i];
if(/\b(marked)\b/.test(snippet.className)){
markedSnippets.push(snippet);
}
}
i = markedSnippets.length;
while(i --){
//HTMLEntities API [url]http://javascript.ru/blog/I-zone/Razbiraem-ponyatie-mnemoniki-praktike[/url].
text = HTML.encode(HTML.decode(markedSnippets[i].value));
/*
Тут делаю нужные замены в text
*/
markedSnippets[i].parentNode.insertBefore(
newDOM("DIV",
{
properties:{
innerHTML: text,
style:{
whiteSpace: "pre"
}
}
}
),
markedSnippets[i]);
markedSnippets[i].style.display = "none";
}
}())