Сохранять HTML-теги после редактирования элемента
Sup. Не знаю что делать - уже всё перепробовал.
У меня есть пост. <td class="post" id="p228"> <div class="message"> text </div> </td> По клику на "Edit post" мне нужно, чтобы к нему добавлялся атрибут contentEditable. После чего пост редактируется модером, а, по событию blur, contentEditable убирается из поста и спрашивается сохранять ли. Вот в чём проблема: после того, как отредактировал пост и убрал conentEditable все HTML-теги экранизируются. Т.е. <a> заменяются на <a>, и ссылки не добавляются в пост, а остаются просто текстом. Как это исправить? Весь пост декодировать - не вариант, ибо для обычных юзеров запрещены HTML-теги и они экранизируются таким-же образом ещё при постинге. Как можно записывать сразу HTML? |
Эот явно не проблемы "Элементов интерфейса"... Т.ч. раздел явно не тот...
|
Цитата:
|
Это получаются ентитьки (html entity), проверьте разницу между innerHTML и textContent элемента. Я не проверял. В любом случае ентитьки можно сконвертировать в html, надо только функцию найти.
|
Цитата:
|
Цитата:
Цитата:
Цитата:
Цитата:
|
Цитата:
|
Сейчас еще такой тренд по экономии батарейки. Типа у кого правильные медийные риквесты, у того батарейка дольше живет. Одуреть.
|
2chan, contentEditable ничего не экранирует(из того что создано браузером), если вам нужно писать и изменять сам код(подобие Edit inner HTML в инструментах разработчика), то contentEditable вам тут совсем не помощник. Подставляйте textarea с содержимым и убирайте при сохранении.
|
Цитата:
|
Цитата:
2. Такие редакторы гнездятся в iframe, как раз во избежание ингресса стилей. 3. Теоретически существует <style scoped> |
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
|
Цитата:
Пример только для демонстрации
<p id="test">
<b>Тестим</b>
<i>редактирование</i>
</p>
<input type="button" value="Включить редактирование" onclick="editTest();" />
<input type="button" value="Выключить редактирование" onclick="closeEdit();" />
<input type="button" value="Показать Html" onclick="showHtml();" />
<script>
function editTest() {
test.contentEditable = true;
}
function closeEdit() {
test.contentEditable = false;
}
function showHtml() {
alert(test.innerHTML);
}
</script>
|
Poznakomlus, да ёпт, яж выше написал что ему нужно.
2chan, либо чистая textarea, либо готовый редактор кода. В firefox например встроен codemirror. Сам стилизировать будешь - проклянёшь всё и вся. |
| Часовой пояс GMT +3, время: 00:32. |