web-dev-qa-db-fra.com

ckeditor supprimant automatiquement la plage vide

j'utilise ckeditor et j'ai des problèmes étranges différents.

il supprime automatiquement vide <span> par exemple

 <span class="new-class"></span>

supprimé automatiquement.

je cherche une solution depuis 2 jours mais sans succès. j'essaie de mettre le code suivant

config.js

CKEDITOR.config.allowedContent = true;

mais pas de succès.

j'ajoute également le code suivant en html où j'utilise ckeditor mais sans succès.

   <script>     
var editor = CKEDITOR.replace( 'editor1', {
allowedContent: true,
    } );
   </script>    

merci

19
air

Vous trouverez deux réponses valides dans cette question: CKEditor strips <i> Tag

L'un dit qu'il n'est pas possible de les conserver si vous voulez les voir dans l'éditeur et le second dit que vous pouvez les empêcher de supprimer, mais vous les masquerez.

8
Reinmar

J'utilise Django CMS 3, CKEditor 4.3 et j'ai eu le même problème en utilisant Twitter bootstrap glyphicon. En regardant: http: // ckeditor .com/forums/Support/Prevent-removal-of-empty-span-tags # forum-topic-top .

Pour autoriser la balise span vide, j'ai ajouté à la fin de ckeditor/config.js

CKEDITOR.dtd.$removeEmpty.span = 0;
15
Patrick

Je suis tombé sur ce fil avec le même problème et j'ai pensé publier ma solution. Je ne voulais pas que CKEditor supprime les éléments vides. Ajoutez ce qui suit au bas de votre fichier config.js:

    $.each(CKEDITOR.dtd.$removeEmpty, function (i, value) {
        CKEDITOR.dtd.$removeEmpty[i] = false;
    });
14
Jonathan Carter

la seule option qui fonctionne pour moi est d'ajouter:

config.extraAllowedContent = 'span(*)';

dans le config.js, à l'intérieur de:

CKEDITOR.editorConfig = function( config ) {

la section '' (astérisque) autorise toutes les classes à l'intérieur de la balise span, pour autoriser uniquement les noms de classe sélectionnés, il suffit de les ajouter à la place du '', séparés par ','

4
Picard

C'était ennuyeux, mais avec de l'aide sur tout un tas de pages, je vais rassembler ce que j'avais trouvé qui fonctionne ici;

(J'utilise CKEditor 4.4.1 avec l'éditeur de sauvegarde en ligne, mais cela devrait fonctionner avec n'importe quel plugin)

dans le fichier core/filter.js

changement:

var allowedContent = editor.config.allowedContent;

à:

var allowedContent = true;

(il est déconseillé, assurez-vous donc de vérifier ce que l'utilisateur enregistre ;-))

Et puis dans le fichier core/dtd.js

près du bas est un $removeEmpty: qui contient une liste des éléments qu'il choisit d'ignorer s'ils sont définis sur 1 .. Recherchez la plage et définissez-la de 1 à 0 (span: 0)

Et si vous avez ajouté le plugin "glyphicons" au config.plugins in config.js vous devriez pouvoir les ajouter, les voir dans l'éditeur, et une fois enregistré, il sera toujours là! :-)

J'espère que cela t'aides

2
skh

Ici, nous avons deux problèmes:

1) <span> Sont supprimés car leur contenu n'est pas autorisé.

2) <span> Sont ignorés car ils sont vides.

Pour résoudre le problème, vous devez non seulement avoir des <span> Non vides, mais également config.extraAllowedContent = 'span(selector1,selector2,...,selectorN)' dans votre fichier de configuration.

En remarque, je recommande contre config.allowedContent Car cela permettrait à peu près n'importe quoi.

1
progfan