CKEditor escape-html

У меня есть CKEditor в тексте сообщения, где я хочу вставить html-код. Что-то вроде этого:

<pre>
<code class="html">
<img src="path/to/img.jpg" />
</code>
</pre>

Но когда я сохраняю текст, CKEditor интерпретирует img-тег как фактическое html-изображение и показывает битое изображение. Как я могу предотвратить это и указать экранировать html-код в блоке pre-code


person Most Wanted    schedule 06.03.2015    source источник


Ответы (1)


<pre>
<code class="html">
<img src="path/to/img.jpg" />
</code>
</pre>

Это изображение внутри элемента pre. Что вы хотите создать:

<pre>
<code class="html">
&lt;img src="path/to/img.jpg" /&gt;
</code>
</pre>

И если вы напишите <img .../> внутри элемента pre в CKEditor, то CKEditor вернет этот (действительный) HTML.

Разработчики часто не знают, что когда они загружают этот контент из своей базы данных в <textarea>, этот контент может нуждаться в кодировании (зависит от того, как он сохранен). Например, в PHP достаточно передать его через htmlspecialchars().

person Reinmar    schedule 08.03.2015
comment
Но мне нужно только экранировать html-символы внутри блока предварительного кода. Может ли CKEditor сделать это за меня? (Конечно, я могу проанализировать весь текст сообщения и скрыть эти символы на стороне сервера, но, возможно, есть какая-то опция или плагин, чтобы сообщить ckeditor, что нужно сделать) - person Most Wanted; 10.03.2015
comment
Нет, вариантов нет, и я не знаю плагина, который это делает. Такой плагин было бы сложно реализовать, потому что этот контент нужно кодировать только один раз, а не каждый раз при загрузке данных. Более того, в некоторых случаях люди действительно хотят создавать элементы внутри тегов <code>, и такой плагин их сломает. - person Reinmar; 10.03.2015