Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Сохранять HTML-теги после редактирования элемента (https://javascript.ru/forum/dom-window/50534-sokhranyat-html-tegi-posle-redaktirovaniya-ehlementa.html)

2chan 30.09.2014 16:28

Сохранять HTML-теги после редактирования элемента
 
Sup. Не знаю что делать - уже всё перепробовал.
У меня есть пост.

<td class="post" id="p228">
	<div class="message">
		text
	</div>
</td>


По клику на "Edit post" мне нужно, чтобы к нему добавлялся атрибут contentEditable.
После чего пост редактируется модером, а, по событию blur, contentEditable убирается из поста и спрашивается сохранять ли.
Вот в чём проблема: после того, как отредактировал пост и убрал conentEditable все HTML-теги экранизируются. Т.е. <a> заменяются на &lt;a&gt;, и ссылки не добавляются в пост, а остаются просто текстом. Как это исправить?
Весь пост декодировать - не вариант, ибо для обычных юзеров запрещены HTML-теги и они экранизируются таким-же образом ещё при постинге.
Как можно записывать сразу HTML?

ksa 30.09.2014 21:39

Эот явно не проблемы "Элементов интерфейса"... Т.ч. раздел явно не тот...

danik.js 30.09.2014 22:06

Цитата:

Сообщение от 2chan
все HTML-теги экранизируются

Да с чего бы это. Вобще, чистый contentEditable может создать ненужный хлам, почему бы не подключить редактор, например CKEditor?

kostyanet 01.10.2014 04:48

Это получаются ентитьки (html entity), проверьте разницу между innerHTML и textContent элемента. Я не проверял. В любом случае ентитьки можно сконвертировать в html, надо только функцию найти.

2chan 11.10.2014 11:34

Цитата:

Сообщение от danik.js (Сообщение 332874)
почему бы не подключить редактор

Потому, что:
  1. Как и все лишнее, занимает место и память.
  2. Это, можно сказать, принцип: работать без сторонних кодов.
  3. Выглядят почти все редакторы страшно: обилие ненужных кнопок, возможно, дичайшие CSS, которые вряд-ли будут нормально выглядеть вместе с стилями сайта.
  4. Имеет ли смысл ставить это только ради редактирования?

danik.js 11.10.2014 11:55

Цитата:

Сообщение от 2chan
Это, можно сказать, принцип: работать без сторонних кодов.

Покажи пожалуйста свой код, который даст нормальный Html, а не хлам, который генерируется браузером?

Цитата:

Сообщение от 2chan
обилие ненужных кнопок

Не видел ни одного редактора без настроек тулбара. А ты видел?
Цитата:

Сообщение от 2chan
дичайшие CSS

CKEditor, начиная с 4 версии вполне симпатичен. Есть скины. Можешь создать свой, это не трудно.
Цитата:

Сообщение от 2chan
Имеет ли смысл ставить это только ради редактирования?

Ну глупый вопрос ведь )) Если стоит задача предоставить возможность визуального редактирования HTML, то стало быть - имеет ))

kostyanet 11.10.2014 19:13

Цитата:

Сообщение от 2chan
Как и все лишнее, занимает место и память.

Вам на серверных языках надо поработать чтоб вы с облегчением хавали память юзера без ограничений. На клиенте всего дохера и памяти тоже. Все эти заморочки по экономии ресурсов - пое...нь. Народ качает видосы в HD, в том числе гаджетами, а тут понимаешь надо ему запросов бы уменьшить, включив css в html и js туда же... смешно.

kostyanet 11.10.2014 19:16

Сейчас еще такой тренд по экономии батарейки. Типа у кого правильные медийные риквесты, у того батарейка дольше живет. Одуреть.

Aetae 11.10.2014 19:33

2chan, contentEditable ничего не экранирует(из того что создано браузером), если вам нужно писать и изменять сам код(подобие Edit inner HTML в инструментах разработчика), то contentEditable вам тут совсем не помощник. Подставляйте textarea с содержимым и убирайте при сохранении.

danik.js 11.10.2014 19:45

Цитата:

Сообщение от Aetae
Подставляйте textarea с содержимым и убирайте при сохранении.

Так вот о чем он) Одуреть ))


Часовой пояс GMT +3, время: 17:13.