47 votes

CKEditor non désiré &nbsp ; caractères

Comment désactiver CKEditor pour qu'il me reçoive à chaque fois ?   alors que je n'en veux pas ? J'utilise CKEditor avec un adaptateur jQuery.

Je ne veux pas avoir   tags.

1 votes

Comment saura-t-il lesquels vous voulez et lesquels vous ne voulez pas ? Voulez-vous les supprimer todos ou réduire les multiples, ou autre chose ? Comment y parviennent-ils en premier lieu ?

0 votes

Je ne veux pas qu'ils soient ajoutés tous

0 votes

OK, je voulais juste clarifier. Donc, lorsqu'un utilisateur appuie sur la barre d'espacement, le système n'ajoutera jamais plus d'un espace ? En d'autres termes, vous ne voulez pas avoir à faire cela du côté du serveur, n'est-ce pas ? Je suppose que le meilleur moyen serait de les transformer tous en espaces normaux (juste au cas où certains séparent deux mots), mais je ne suis pas sûr de savoir comment le faire avec ckeditor spécifiquement.

2voto

user3833195 Points 11

C'est une mauvaise solution

config.basicEntities = false;
  • Parce qu'il ne vous permet pas d'insérer le code JS dans le formulaire en tant que texte. Par exemple <script type="text/javascript" src="/scripts/redactor/ckeditor/ckeditor.js"></script>
  • En outre, les blocs vides comme <p>&nbsp;</p> ne spécifie pas d'indentation dans le texte puisque le caractère &nbsp; seront supprimés (config.fillEmptyBlocks = true ;)

C'est la bonne solution

$text = preg_replace("#([^>])&nbsp;#ui", "$1 ", $text);
  • Il s'agit d'une fonction PHP qui remplace tous les caractères &nbsp; sur un espace, sauf ceux qui sont à l'intérieur de la balise comme <p>&nbsp;</p>
  • Le code de la fonction n'est pas le plus élégant, vous pouvez proposer votre propre version.

0voto

Victor Priceputu Points 133

J'ai eu les mêmes problèmes pour créer des tableaux. Ce que j'ai vu, c'est que si je créais les tableaux avec la règle css align="left" el <p>&nbsp;</p> sont ajoutés, mais si je change la règle css en align="center" J'ai pu éditer les paragraphes et ils n'ont pas été ajoutés à nouveau.

0voto

pat capozzi Points 160

J'avais déjà eu à jouer avec config.js, et pour corriger l'affichage de '?' dans safari, j'ai ajouté 3 lignes dans config.js.

config.fillEmptyBlocks = function (element) {
return true; // DON'T DO ANYTHING!!!!!};
config.entities = false;
config.basicEntities = false;

-3voto

Maxwell9rk Points 1

Si vous utilisez PHP, vous pouvez utiliser la commande suivante :

preg_replace("/[\<]p[\>][\s]+&nbsp;[\<][\/]p[\>]/" , " " , $pre_comment);

Cela permettra de supprimer : "<p> &nbsp;</p>"

Profitez-en :)

Maxwell

-3voto

xiltepin Points 80

Ajoutez ceci à votre config.js

config.enterMode = CKEDITOR.ENTER_BR,

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