Я пытаюсь использовать TinyMCE (версия 4.1.2) в качестве редактора WYSIWYG. Вошедшие в систему пользователи могут создавать свои собственные страницы и напрямую видеть, что будет отображаться на странице при посещении посетителем.
Теперь я хотел бы, чтобы html сохранялся напрямую. Например:
Вошедший пользователь видит This is my text!
, но на самом деле TinyMCE отображает его как <p>This is my text!</p>
. Есть также определенные стили, такие как <h1>
и ссылки, которые можно добавить.
Теперь пользователь может вставить гиперссылку, указав ссылку и текст, которые должны отображаться. Однако проблема в том, что если пользователь вручную пишет <a href='example.com'>Example</a>
, он отображается в редакторе вот так, но также сохраняется в чистом html, поэтому при отображении это будет просто гиперссылка с текстом Example
.
Вот как выглядит мой код (без конфигурации):
tinymce.init({
setup: function(editor){
editor.on('change', function(e){
$('[name="'+editor.id+'"]').next("textarea").html(editor.getContent({format: 'html'}));
});
}
});
Таким образом, текст из поля TinyMCE копируется в <textarea>
, который находится внутри <form>
, который отправляется при сохранении.
Что-то вроде этого:
сохраняется как:
<h1>Title</h1>
<p><a href="example.com">example</a></p>
<p><a href="example.com">test</a></p>
Что не оставляет мне возможности отличить настоящие ссылки от чистого текста, поэтому я не могу его обработать после сохранения данных.
Я уже возился с параметрами формата editor.getContent({format: 'html'})
, например format: 'raw'
, но безрезультатно. Что я делаю не так?