ti-enxame.com

JCE / TinyMCE - Continua tentando corrigir HTML válido e inválido

De todos os editores de Joomla que usamos, o JCE melhor se adequou aos nossos propósitos e clientes. Mas existem alguns problemas com o editor que podem causar problemas quando codificamos algo, então é alternado para wysiwyg e o editor tenta 'consertar' nosso html perfeitamente válido.

Antes de você fazer perguntas - sim, nós o configuramos para permitir que todos os elementos que a JCE gosta restrinja e não, NÃO está configurado para validar/limpar o html. As únicas restrições que temos são para colar o conteúdo no editor.

Anexo A:

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

Isso desaparecerá no alternador do editor e vice-versa. Substituído por:

<p>&nbsp;</p>

Anexo B:

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

Muda para:

<p>&nbsp;</p>

Anexo C:

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

Muda para:

<div>&nbsp;</div>

Anexo D:

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

Muda para:

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

Anexo E:

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

Muda para:

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

Agora, queremos usar id em vez de nome para nossa âncora, porque é válido no HTML5, enquanto tecnicamente o nome não é. Além disso, em que universo id é uma atribuição inválida a um link?

Além disso, agora que é totalmente legítimo agrupar uma div com links, por que o JCE também os tira?

Está faltando apenas uma configuração? Alguém tem alguma idéia de como eu posso usar o editor para que possamos codificar conforme necessário no editor, mas nossos clientes não podem destruí-lo simplesmente salvando no wysiwyg?

Edit: Eu testei isso no chrome, firefox e safari. Não pense que tem algo a ver com o navegador.

Editar: testei isso com as configurações do contêiner. Contêiner de parágrafo e parágrafo em Enter e div Contêiner e div em enter causam isso. Os outros dois, Sem contêiner e Parágrafo ao entrar, Sem contêiner e quebra de linha ao entrar, não o causam. O problema é - eu preciso da primeira configuração! Por mais que fosse ótimo oferecer aos clientes o benefício da dúvida, eles simplesmente não podem confiar em seguir as instruções e adicionar formatação de parágrafo ao texto.

Confirmado: isso também acontece com o TinyMCE.

Então - sabemos o que causa isso - a configuração do Parágrafo contêiner - agora como contorná-lo enquanto mantemos essa configuração ativa?

9
Faye

Eu uso o Editor JCE em todos os nossos sites, mas também começamos a instalar o Sourcerer by NoNumbers. Isso fornece um botão fácil INSERIR CÓDIGO para o editor JCE que protege contra a modificação.

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

7
YellowWebMonkey

Existem algumas configurações secretas para o JCE. Sei que a seguinte configuração para &nbsp; sendo adicionado a divs vazias, talvez usado para limpar flutuadores, o que causa problemas de altura da linha quando renderizados:

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

Eu esperava que houvesse mais que possa controlar qualquer aspecto do editor.

2
BodgeIT

Acho que devem ser as configurações de tipografia em: Perfil -> Parâmetros do editor -> Tipografia. Tente definir o elemento Container e a tecla Enter como NoContainer & LineBreak em Enter para verificar se ainda há alguma alteração no seu html.

Lembre-se também de que a configuração de Validação HTML possui configurações para cada perfil do Editor e que o Joomla também fornece um filtro global na página de configuração global definida pelo grupo de usuários. Verifique se não há configurações para cada grupo de usuários.

1
FFrewin

Esse comportamento não é exclusivo do JCE. O TinyMCE se comporta da mesma maneira. Esse comportamento pode não estar limitado ao TinyMCE, pode ser um comportamento do DOM do navegador.

A JCE realmente se preocupa em tentar manter algumas tags vazias, o método empregado é preencher um espaço.

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

0
Peter Wiseman