it-swarm.com.de

JCE / TinyMCE - Versucht weiterhin, gültiges und ungültiges HTML zu reparieren

Von allen Joomla-Editoren, die wir verwendet haben, hat JCE unseren Zwecken und Kunden am besten entsprochen. Aber es gibt ein paar Probleme mit dem Editor, die Probleme verursachen können, wenn wir etwas codieren. Dann wird 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. Nein, es ist NICHT so eingestellt, dass das HTML validiert/bereinigt wird. 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>&nbsp;</p>

Anlage B:

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

Änderungen an:

<p>&nbsp;</p>

Anlage C:

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

Änderungen an:

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

Jetzt wollen wir id anstelle von name für unseren Anker verwenden, da er unter HTML5 gültig ist, während name dies technisch nicht ist. In welchem ​​Universum ist die Zuordnung zu einem Link ungültig?

Und jetzt, da es absolut legitim ist, ein Div mit Links zu versehen, warum sollte JCE diese auch entfernen?

Ist das nur eine Einstellung, die ich vermisse? Hat jemand einen Einblick, wie ich den Editor verwenden kann, damit wir den Code so programmieren können, wie wir ihn im Editor benötigen, aber unsere Kunden können ihn nicht einfach durch Speichern in wysiwyg zerstören?

Edit: Ich habe dies in Chrome, Firefox und Safari getestet. Denken Sie nicht, dass es irgendetwas mit dem Browser zu tun hat.

Bearbeiten: Ich habe dies mit den Containereinstellungen getestet. Dies wird sowohl durch Absatz Container & Absatz bei Eingabe als auch durch Div Container & Div bei Eingabe verursacht. Die anderen beiden, Kein Container & Absatz bei Eingabe, Kein Container & Zeilenumbruch bei Eingabe, verursachen dies nicht. Das Problem ist - ich brauche die erste Einstellung! So großartig es auch wäre, Kunden den Vorteil des Zweifels zu geben, sie können einfach nicht darauf vertrauen, dass sie Anweisungen befolgen und ihrem Text Absatzformatierungen hinzufügen.

Bestätigt: Dies passiert auch mit TinyMCE.

Also - wir wissen, woran das liegt - die Paragraph-Container-Einstellung - wie können wir das umgehen, während wir diese Einstellung am Leben erhalten?

9
Faye

Ich benutze JCE Editor auf allen unseren Websites, aber wir haben auch damit begonnen, Sourcerer von NoNumbers zu installieren. Dies gibt dem JCE-Editor eine einfache INSERT CODE-Schaltfläche, die ihn vor Änderungen schützt.

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

7
YellowWebMonkey

Es gibt einige geheime Einstellungen für JCE. Ich weiß, die folgende Einstellung stoppt &nbsp; wird zu leeren Divs hinzugefügt und möglicherweise zum Löschen von Floats verwendet, was beim Rendern zu Problemen mit der Zeilenhöhe führt:

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

Ich würde erwarten, dass es mehr gibt, die jeden Aspekt des Editors kontrollieren können.

2
BodgeIT

Ich denke es müssen die Typografieeinstellungen sein in: Profil -> Editorparameter -> Typografie. Versuchen Sie, das Containerelement und die Eingabetaste auf "NoContainer & LineBreak" bei "Enter" zu setzen, um zu überprüfen, ob noch Änderungen an Ihrem HTML-Code vorgenommen werden.

Denken Sie auch daran, dass die Einstellung HTML-Validierung Einstellungen für jedes Editor-Profil enthält 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.

1
FFrewin

Dieses Verhalten gilt nicht nur für JCE. TinyMCE verhält sich genauso. Dieses Verhalten ist möglicherweise nicht auf TinyMCE beschränkt. Es kann sich auch um ein Browser-DOM-Verhalten handeln.

JCE macht sich tatsächlich die Mühe, einige leere Tags beizubehalten. Die verwendete Methode besteht darin, ein Leerzeichen einzufügen.

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

0
Peter Wiseman