Von allen Joomla-Editoren, die wir verwendet haben, hat JCE unsere Zwecke und Kunden am besten erfüllt. Aber es gibt ein paar Probleme mit dem Editor, die Probleme verursachen können, wenn wir etwas codieren. Dann wird es auf wysiwyg umgeschaltet und der Editor versucht, unser perfekt gültiges HTML zu "reparieren".
Bevor Sie Fragen stellen - ja, wir haben es so eingestellt, dass alle Elemente, die JCE gerne einschränkt, zugelassen werden, und nein, es ist NICHT so eingestellt, dass es das HTML validiert / bereinigt. Die einzigen Einschränkungen, die wir haben, sind das Einfügen von Inhalten in den Editor.
Anlage A:
<a href="#"></a>
Dies verschwindet beim Umschalten des Editors und zurück. Ersetzt mit:
<p> </p>
Anlage B:
<a id="#nameofanchor"></a>
Änderungen an:
<p> </p>
Anlage C:
<div><a id="#nameofanchor"></a></div>
Änderungen an:
<div> </div>
Anlage D:
<a id="hello" class="link">Hello</a>
Änderungen an:
<p><a id="hello" class="link"></a>Hello</p>
Anlage E:
<a href="#">
<div>
<h2>Our Work</h2>
</div>
</a>
Änderungen an:
<p><a href="#"></a></p>
<div>
<h2><a href="#">Our Work</a></h2>
</div>
<p> </p>
Jetzt möchten wir id anstelle von name für unseren Anker verwenden, da dies unter HTML5 gültig ist, während name technisch nicht der Fall ist. In welchem Universum ist id eine ungültige Zuordnung zu einem Link?
Und jetzt, da es absolut legitim ist, ein Div mit Links zu versehen, warum sollte JCE diese auch entfernen?
Fehlt mir nur diese Einstellung? Hat jemand einen Einblick, wie ich den Editor verwenden kann, damit wir nach Bedarf im Editor codieren können, aber unsere Kunden können ihn nicht einfach durch Speichern in wysiwyg zerstören?
Bearbeiten: Ich habe dies in Chrom, Firefox und Safari getestet. Denken Sie nicht, dass es etwas mit dem Browser zu tun hat.
Bearbeiten: Ich habe dies mit den Containereinstellungen getestet. Dies verursachen sowohl Paragraph Container & Paragraph on Enter als auch Div Container & Div on Enter. Die anderen beiden, Kein Container & Absatz bei Eingabe, Kein Container & Zeilenumbruch bei Eingabe, verursachen dies nicht. Problem ist - ich brauche die erste Einstellung! So großartig es auch wäre, Kunden den Vorteil des Zweifels zu geben, ihnen kann einfach nicht vertraut werden, Anweisungen zu befolgen und ihrem Text Absatzformatierungen hinzuzufügen.
Bestätigt: Dies passiert auch mit TinyMCE.
Also - wir wissen, was dies verursacht - die Paragraph Container-Einstellung - wie können wir sie nun umgehen, während wir diese Einstellung am Leben erhalten?
Antworten:
Ich verwende JCE Editor auf allen unseren Websites, aber wir haben auch damit begonnen, Sourcerer von NoNumbers zu installieren. Dies gibt dem JCE-Editor eine einfache Schaltfläche INSERT CODE, die ihn vor Änderungen schützt.
http://www.nonumber.nl/extensions/sourcerer
quelle
Es gibt einige geheime Einstellungen für JCE. Ich weiß, dass die folgenden Einstellungen
nicht mehr zu leeren Divs hinzugefügt werden, möglicherweise zum Löschen von Floats, was beim Rendern zu Problemen mit der Zeilenhöhe führt:Ich würde erwarten, dass es mehr gibt, die jeden Aspekt des Editors steuern können.
quelle
Ich denke, es müssen die Typografieeinstellungen sein in: Profil -> Editorparameter -> Typografie . Versuchen Sie, den Schlüssel Container Container & Enter auf NoContainer & LineBreak bei Enter zu setzen, um festzustellen, ob noch Änderungen an Ihrem HTML-Code vorgenommen werden.
Denken Sie auch daran, dass die HTML-Validierungseinstellung für jedes Editorprofil eine Einstellung hat und dass Joomla auch einen globalen Filter auf der von der Benutzergruppe festgelegten globalen Konfigurationsseite bereitstellt. Stellen Sie sicher, dass für jede Benutzergruppe keine Einstellungen vorhanden sind.
quelle
Dieses Verhalten gilt nicht nur für JCE. TinyMCE verhält sich genauso. Dieses Verhalten ist möglicherweise nicht auf TinyMCE beschränkt, sondern kann ein Browser-DOM-Verhalten sein.
JCE macht sich tatsächlich die Mühe, einige leere Tags zu behalten. Die angewandte Methode besteht darin, ein Leerzeichen einzufügen.
https://github.com/widgetfactory/jce-editor/blob/master/editor/tiny_mce/plugins/cleanup/editor_plugin.js
quelle