JCE / TinyMCE - Триває спробу виправити дійсний та недійсний HTML


9

З усіх редакторів Joomla, якими ми користувалися, JCE найкраще відповідав нашим цілям та клієнтам. Але є кілька проблем з редактором, які можуть викликати проблеми, коли ми щось кодуємо, тоді він перемикається на wysiwyg, і редактор намагається «виправити» наш ідеально html-код.

Перш ніж перейти до запитань - так, ми встановили це, щоб усі ці елементи JCE любили обмежувати, і ні, він НЕ встановлений для перевірки / очищення html. Єдині обмеження, які ми маємо, - це вставлення вмісту в редактор.

Додаток A:

<a href="#"></a>

Це зникне при включеному редакторі та назад. Замінено на:

<p>&nbsp;</p>

Додаток B:

<a id="#nameofanchor"></a>

Зміни до:

<p>&nbsp;</p>

Додаток C:

<div><a id="#nameofanchor"></a></div>

Зміни до:

<div>&nbsp;</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>&nbsp;</p>

Тепер ми хочемо використовувати id замість імені для свого прив’язки, оскільки він дійсний під HTML5, тоді як ім'я технічно - ні. Крім того, у якому Всесвіті ідентифікується недійсне призначення посилання?

Крім того, тепер, коли цілком законно обертати діви за допомогою посилань, навіщо JCE також знімати їх?

Це просто налаштування, якого я не вистачає? Хтось має уявлення про те, як я можу використовувати редактор, щоб ми могли кодувати так, як нам потрібно в редакторі, але наші клієнти не можуть його зруйнувати, просто заощадивши в wysiwyg?

Редагувати: Я перевірив це на хромі, фаєрфоксі та сафарі. Не думайте, що це стосується браузера.

Редагувати: я перевірив це за допомогою параметрів контейнера. І контейнер абзацу, і параметр при введенні, і контейнер Div & Div on enter викликають це. Інші два, відсутність контейнера та абзацу при введенні, відсутність контейнеру та рядок рядків при введенні, не викликають цього. Проблема в тому, що - мені потрібна перша настройка! Наскільки це було б чудово, щоб надати клієнтам користь від сумнівів, їм просто не можна довіряти слідування інструкціям та додавання форматування абзацу до їх тексту.

Підтверджено: Це також відбувається з TinyMCE.

Отже - ми знаємо, що викликає це - налаштування контейнера абзацу - тепер, як ми його обійдемо, зберігаючи цю настройку в живих?


1
Радий, що це не тільки я.
Крейг

Після наших попередніх обговорень та висновку, що це випливає із функції обгортання елементів СКВ, я не впевнений, що це насправді турбує. Якщо ви довіряєте своєму клієнту, щоб він міг додати фрагменти html, як описано вище, переміщуючи стан редактора, чому ви не повірите їм, що вони обернуть їх вміст відповідними тегами <p>?
FFrewin

Наші клієнти не додають html. Ми пишемо html, вони використовують сторону редактора - як тільки редактор перемикається, він руйнує наш ідеально html.
Faye

У будь-якому випадку, якщо ви надаєте клієнтам доступ до редагування сторінки, повною html, то так чи інакше, є велика ймовірність, що клієнт може зруйнувати ваш html. А як щодо використання менеджера шаблонів JCE або інших тегів "макрос", які зроблять брудну роботу щодо додавання потрібної розмітки?
FFrewin

Відповіді:


7

Я використовую редактор JCE на всіх наших сайтах, але ми також почали встановлювати Sourcerer від NoNumbers. Це дає просту кнопку INSERT CODE для редактора JCE, яка захищає її від зміни.

http://www.nonumber.nl/extensions/sourcerer


ДЯКУЮ ТОБІ. Це ідеально, у нас уже встановлено нумерографію на наших речах, тому що це фантастично, я не знав, що це має. Це ідеально.
Faye

1
Не потрібно використовувати Sourcerer для додавання HTML.
BodgeIT

Aaaand все ж я повинен або JCE знімає ідеально правильний HTML-код.
Faye

2

Існують деякі секретні налаштування для СКВ. Я знаю, що наступні налаштування перестають &nbsp;додаватися до порожніх знаків, можливо, використовуються для очищення поплавків, що спричиняє проблеми з висотою рядка при наданні:

In the Editor Global Configuration, add:
remove_div_padding:1 
to Custom Configuration Variables. 

Я би сподівався, що є більше, які можуть контролювати будь-який аспект редактора.


1

Я думаю, що це повинні бути налаштування типографії в: Профіль -> Параметри редактора -> Типографія . Спробуйте встановити елемент Container & Enter для NoContainer & LineBreak on Enter, щоб побачити, чи він все ще застосовує якісь зміни до вашого html.

Також пам’ятайте, що налаштування перевірки HTML має налаштування для кожного профілю редактора, і що Joomla також забезпечує глобальний фільтр на сторінці глобальної конфігурації, встановленому групою користувачів. Переконайтесь, що немає налаштувань для кожної групи користувачів.


Так, я був у всіх профілях редакторів і т. Д. У мене все це правильно налаштовано без HTML. Зміна контейнера може вирішити його - але це спричинить ще одну проблему, настільки ж проблематичну. Якщо клієнт може додати текстовий вміст, не загорнутий у теги абзацу, форматування їх тексту буде іншим. Ми теж цього не хочемо. Я тестую його, щоб побачити, чи це викликає таку ж проблему з якорем, але що стосується додавання тегів абзацу, це такий собі параметр курсу.
Faye

Так, саме налаштування контейнера це роблять - але, як я вже сказав, це більшу проблему для наших клієнтів, які не можуть вставити та мати автоматичний тег абзацу, щоб обернути їх вміст.
Faye

Я думаю, що це відбувається тому, що ваші приклади коду містять розриви рядків, що є своєрідним «правилом» для СКЕ для створення абзаців. Для цього має бути такий критерій. Ваш клієнт збирається вставити такі фрагменти HTML у редактор?
FFrewin

Наші клієнти не збираються використовувати html, але ми все ще кодуємо html за тим, що вони роблять. Ми створюємо для них області для вставки / введення прямого вмісту. Також - якщо ви маєте на увазі введення html в один рядок замість упорядкованого, як описано вище, я також спробував це. Я отримую точно такі самі результати.
Faye

0

Така поведінка не властива СКВ. TinyMCE поводиться так само. Ця поведінка може не обмежуватися TinyMCE, це може бути поведінка DOM веб-переглядача.

JCE насправді йде на проблему, намагаючись зберегти кілька порожніх тегів, метод, що використовується, - це прокладка з пробілом.

https://github.com/widgetfactory/jce-editor/blob/master/editor/tiny_mce/plugins/cleanup/editor_plugin.js


Не брешу, я поняття не маю, що це означає. Ви можете розбити це ще трохи? На що я дивлюсь у цьому посиланні? Що ви маєте на увазі килимок із пробілом? Додавання нерозривного простору до вищевказаних прикладів коду не змінює кінцевих результатів, я це ретельно перевірив.
Faye

Я переключив редактор за замовчуванням на TinMCE, той, який попередньо встановлений разом з Joomla, і перевірив виставку А. Він також видалив теги при переключенні між редактором WYSIWYG та переглядами джерела. тобто така поведінка не видається унікальною для СКВ. Отже, мені цікаво, чи це не властиво і TinyMCE, і, можливо, те саме може статися при використанні браузерів, здатних виконувати редагування на місці. Посиланням на код JCE був рядок 129, де між початковим і кінцевим тегами використовується нерозривний пробіл. Це працює для мене і в СКВ, і в TinyMCE. Дивно.
Пітер Вісман
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.