Из всех редакторов Joomla, которые мы использовали, JCE лучше всего подходит для наших целей и клиентов. Но есть несколько проблем с редактором, которые могут вызвать проблемы, когда мы что-то кодируем, затем он переключается на wysiwyg, и редактор пытается «исправить» наш совершенно правильный HTML.
Прежде чем вы начнете задавать вопросы - да, мы установили его, чтобы разрешить все эти элементы, которые JCE любит ограничивать, и нет, он НЕ настроен для проверки / очистки html. Единственные ограничения, которые у нас есть, - это вставка контента в редактор.
Выставка:
<a href="#"></a>
Это исчезнет при переключении редактора и обратно. Заменено на:
<p> </p>
Приложение Б:
<a id="#nameofanchor"></a>
Изменения к:
<p> </p>
Приложение C:
<div><a id="#nameofanchor"></a></div>
Изменения к:
<div> </div>
Приложение D:
<a id="hello" class="link">Hello</a>
Изменения к:
<p><a id="hello" class="link"></a>Hello</p>
Приложение E:
<a href="#">
<div>
<h2>Our Work</h2>
</div>
</a>
Изменения к:
<p><a href="#"></a></p>
<div>
<h2><a href="#">Our Work</a></h2>
</div>
<p> </p>
Теперь мы хотим использовать идентификатор вместо имени для нашего якоря, потому что он действителен в HTML5, тогда как имя технически - нет. Кроме того, в каком юниверсе находится недопустимое назначение для ссылки?
Кроме того, теперь, когда вполне законно заключать div со ссылками, почему JCE также удаляет их?
Это просто настройка, по которой я скучаю? Кто-нибудь знает, как я могу использовать редактор, чтобы мы могли кодировать так, как нам нужно, в редакторе, но наши клиенты не могут его разрушить, просто сохраняя в wysiwyg?
Изменить: я проверил это в Chrome, Firefox и Safari. Не думайте, что это как-то связано с браузером.
Изменить: я проверил это с настройками контейнера. И Контейнер Абзаца и Абзац при вводе и Div Контейнер и Разделение при вводе вызывают это. Другие два, без контейнера и абзаца при вводе, без контейнера и переноса строки при вводе, не вызывают его. Проблема в том, что мне нужна первая настройка! Как бы ни было полезно дать клиентам преимущество сомнения, им просто нельзя доверять, чтобы они следовали инструкциям и добавляли форматирование абзацев в свой текст.
Подтверждено: это также происходит с TinyMCE.
Итак - мы знаем, что вызывает это - параметр Контейнер абзаца - теперь, как мы можем обойти это, поддерживая этот параметр живым?
Ответы:
Я использую JCE Editor на всех наших сайтах, но мы также начали устанавливать Sourcerer от NoNumbers. Это дает простую кнопку INSERT CODE для редактора JCE, который защищает его от изменения.
http://www.nonumber.nl/extensions/sourcerer
источник
Есть некоторые секретные настройки для JCE. Я знаю, что следующие настройки перестают
добавляться к пустым элементам div, возможно, используются для очистки поплавков, что вызывает проблемы с высотой строки при рендеринге:Я ожидаю, что есть больше, которые могут контролировать любой аспект редактора.
источник
Я думаю, что это должны быть настройки типографии в: Профиль -> Параметры редактора -> Типография . Попробуйте установить для элемента контейнера и ключа ввода значение NoContainer & LineBreak при вводе, чтобы узнать, применяет ли он все еще какие-либо изменения в вашем html.
Также помните, что в настройке HTML Validation есть настройка для каждого профиля Editor и что Joomla также предоставляет глобальный фильтр на странице глобальной конфигурации, установленной группой пользователей. Убедитесь, что там нет настроек для каждой группы пользователей.
источник
Такое поведение не является уникальным для JCE. TinyMCE ведет себя так же. Это поведение может не ограничиваться TinyMCE, это может быть поведение DOM браузера.
На самом деле JCE пытается сохранить некоторые пустые теги, метод, который используется для заполнения пробела.
https://github.com/widgetfactory/jce-editor/blob/master/editor/tiny_mce/plugins/cleanup/editor_plugin.js
источник