Я в основном разрабатываю ответ ajsutton, который послужил отправной точкой для решения проблемы для моих нужд.
Вы должны дважды выйти из <и>, потому что браузер один раз экранирует данные, полученные с сервера, прежде чем передать их в TinyMCE.
Предположим, что вы хотите открыть текстовый массив TinyMCE WYSIWYG с надписью "HTML-тег для жирного шрифта . Несуществующий HTML-тег ."
Предположим, сервер отправляет следующий источник страницы:
<script language="javascript" type="text/javascript">
tinyMCE.init({
selector : "textarea.myMCE",
...
});
</script>
...
<TEXTAREA NAME="TEST" class="myMCE" ROWS="25" COLS="80">
The HTML tag for boldface is <CODE><B>.</CODE>
A nonexistent HTML tag is <CODE><NONSENSE>.</CODE>
</TEXTAREA>
Это не удастся. Браузер (в моем случае firefox) декодирует источник один раз перед отправкой в TinyMCE; Вы можете увидеть это, удалив тег «class = myMCE», чтобы получить простой текстовый массив html со следующим содержимым:
The HTML tag for boldface is <CODE><B>.</CODE>
A nonexistent HTML tag is <CODE><NONSENSE>.</CODE>
Если TinyMCE (4 в моем случае) получает эти данные, и вы смотрите «инструменты»: «Исходный код», вы можете увидеть:
The HTML tag for boldface is <CODE><B>.</CODE>
A nonexistent HTML tag is <CODE>.</CODE>
TinyMCE подавил недействительный HTML-тег "". Визуализированный текст в текстовом массиве THE TinyMCE будет выглядеть так:
HTML-тег для жирного шрифта - . Несуществующий HTML-тег -.
Обратите внимание, что первый "." смелее сейчас!
Правильный источник HTML, который должен отправить сервер:
<TEXTAREA NAME="TEST" class="myMCE" ROWS="25" COLS="80">
The HTML tag for boldface is <CODE>&lt;B&gt;.</CODE>
A nonexistent HTML tag is <CODE>&lt;NONSENSE&gt;.</CODE>
</TEXTAREA>
т.е. все "&" заменены на "& amp;" в содержании текстового массива.
Как вы можете достичь этого, зависит от языка программирования, который вы используете для своих скриптов cgi. В php должен работать str_replace ("&", "& amp;", $ textarrea_contents).