it-swarm.it

JCE / TinyMCE - Continua a tentare di correggere HTML valido e non valido

Di tutti gli editor di Joomla che abbiamo usato, JCE si è adattato meglio ai nostri scopi e clienti. Ma ci sono alcuni problemi con l'editor che possono causare problemi quando codifichiamo qualcosa, quindi viene attivato Wysiwyg e l'editor cerca di "riparare" il nostro HTML perfettamente valido.

Prima di fare domande, sì, l'abbiamo impostato per consentire a tutti quegli elementi che JCE preferisce limitare e no, NON è impostato per convalidare/ripulire l'html. Le uniche restrizioni che abbiamo sono per incollare i contenuti nell'editor.

Allegato A:

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

Questo scomparirà con l'editor di commutazione e viceversa. Sostituito con:

<p>&nbsp;</p>

Allegato B:

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

Cambia in:

<p>&nbsp;</p>

Allegato C:

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

Cambia in:

<div>&nbsp;</div>

Allegato D:

<a id="hello" class="link">Hello</a>

Cambia in:

<p><a id="hello" class="link"></a>Hello</p>

Esibire:

<a href="#">
<div>
<h2>Our Work</h2>
</div>
</a>

Cambia in:

<p><a href="#"></a></p>
<div>
<h2><a href="#">Our Work</a></h2>
</div>
<p>&nbsp;</p>

Ora, vogliamo usare id invece di name per la nostra ancora, perché è valido in HTML5, mentre tecnicamente il nome non lo è. Inoltre, in quale universo ID è un'assegnazione non valida a un collegamento?

Inoltre, ora che è totalmente legittimo avvolgere un div con collegamenti, perché JCE dovrebbe eliminare anche quelli?

È solo un'impostazione che mi manca? Qualcuno ha qualche idea su come posso usare l'editor in modo che possiamo programmare come ci serve nell'editor, ma i nostri clienti non possono rovinarlo semplicemente salvando in wysiwyg?

Modifica: l'ho provato su Chrome, Firefox e Safari. Non pensare che abbia qualcosa a che fare con il browser.

Modifica: l'ho provato con le impostazioni del contenitore. Sia il contenitore paragrafo sia il paragrafo su Invio e Div contenitore e Div su invio causano questo. Gli altri due, Nessun contenitore e paragrafo su invio, Nessun contenitore e interruzione di riga su invio, non lo causano. Il problema è: ho bisogno della prima impostazione! Per quanto sarebbe bello offrire ai clienti il ​​vantaggio del dubbio, semplicemente non ci si può fidare di loro per seguire le istruzioni e aggiungere la formattazione dei paragrafi al loro testo.

Confermato: questo succede anche con TinyMCE.

Quindi - sappiamo cosa causa questa - l'impostazione del contenitore di paragrafi - ora come possiamo aggirarla mantenendo viva questa impostazione?

9
Faye

Uso JCE Editor su tutti i nostri siti, ma abbiamo anche iniziato a installare Sourcerer di NoNumbers. Ciò fornisce un semplice pulsante INSERISCI CODICE all'editor JCE che lo protegge dalle modifiche.

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

7
YellowWebMonkey

Ci sono alcune impostazioni segrete per JCE. So che la seguente impostazione si interrompe &nbsp; viene aggiunto a div vuoti, forse utilizzato per cancellare i float, il che provoca problemi di altezza della linea quando viene eseguito il rendering:

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

Mi aspetto che ce ne siano altri in grado di controllare qualsiasi aspetto dell'editor.

2
BodgeIT

Penso che debbano essere le impostazioni di tipografia in: Profilo -> Parametri dell'editor -> Tipografia. Prova a impostare l'elemento contenitore e il tasto Invio su NoContainer e LineBreak su Invio per vedere se applica ancora eventuali modifiche al tuo codice HTML.

Ricorda inoltre che l'impostazione di convalida HTML ha un'impostazione per ciascun profilo dell'editor e che Joomla fornisce anche un filtro globale nella pagina di configurazione globale impostata da usergroup. Assicurarsi che non vi siano impostazioni lì per ciascun gruppo utenti.

1
FFrewin

Questo comportamento non è esclusivo di JCE. TinyMCE si comporta allo stesso modo. Questo comportamento potrebbe non essere limitato a TinyMCE, potrebbe essere un comportamento DOM del browser.

JCE effettivamente si prende la briga di provare a mantenere alcuni tag vuoti, il metodo impiegato è quello di riempire con uno spazio.

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

0
Peter Wiseman