3 votes

espaces supplémentaires insérés avec CKeditor's enterMode - cause des problèmes dans les documents XML

J'utilise CKEditor dans le système de gestion de contenu de mon site Web, qui génère un fichier XML contenant des CDATA à lire par Flash. Le problème est que CKEditor, lorsque son enterMode est réglé sur <p> crée un saut de ligne et une tabulation dans la source qui, lorsqu'elle est lue par Flash, entre dans l'espace, bien que j'aie réglé ignoreWhiteSpace sur true. Y a-t-il un moyen d'empêcher ckeditor d'utiliser ce comportement ?

EDIT :

Je veux toujours conserver les balises <p> saisies dans l'éditeur, mais je ne veux pas de tous les espaces et tabulations supplémentaires qui sont ajoutés dans la source réelle. Si j'utilise la méthode ci-dessus, mon code réel sera modifié. Ce que j'obtiens si je visualise la source est le suivant :

<p> 
    Donec at erat nec tortor sodales tempus.</p> 

(une entrée, et soit une tabulation ou un tas d'espace après la première balise <p>, au lieu de :

<p>Donec at erat nec tortor sodales tempus.</p> 

(pas d'espace ou de coupure après la balise <p> dans la source et je pense que cela affecte la présentation du XML. Cela aide-t-il à clarifier les choses ?

2voto

AlfonsoML Points 7590

Vous devriez tester l'échantillon "output for Flash", voici un petit extrait qui modifie juste la partie que vous demandez, mais le reste des ajustements devrait vous être utile :

// Make output formatting match Flash expectations
var dtd = CKEDITOR.dtd;
for ( var e in CKEDITOR.tools.extend( {}, dtd.$nonBodyContent, dtd.$block, dtd.$listItem, dtd.$tableContent ) )
{
    dataProcessor.writer.setRules( e,
        {
            indent : false,
            breakBeforeOpen : false,
            breakAfterOpen : false,
            breakBeforeClose : false,
            breakAfterClose : false
        });
}
dataProcessor.writer.setRules( 'br',
    {
        indent : false,
        breakBeforeOpen : false,
        breakAfterOpen : false,
        breakBeforeClose : false,
        breakAfterClose : false
    });

0voto

mheavers Points 3672

J'ai en fait résolu ce problème du côté de Flash, en utilisant

TextField.condenseWhite = true;

y

XML.ignoreWhite = true;

Ce qui ne change pas la façon dont CKEditor recrache les données, mais résout le problème de l'affichage par Flash.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X