web-dev-qa-db-fra.com

Comment empêcher CKEditor 3.6.3.7474 de supprimer les balises <script>

Avec Full HTML activé et filtres associés désactivés, CKEditor supprimera tout <script> balises du contenu qu'il modifie. Les éditeurs qui créent du contenu pour ce site particulier doivent être capables d'incorporer des choses comme celle-ci dans le contenu qu'ils créent:

    <img src="http://s2.thingpic.com/images/TD/zKWJQJiFBsp3oP1etNC1.png" width="560" class="alwaysThinglink"/>
<script charset="utf-8" src="//www.thinglink.com/jse/embed.js#286861458501795840"></script>

En théorie, nous pouvons faire en sorte que cela fonctionne en désactivant CKEditor et en travaillant directement avec HTML, mais en pratique cela ne fonctionne pas: les éditeurs ne sont pas avertis en HTML. Ils en savent assez pour abandonner temporairement le mode texte riche, coller ce qui précède, puis revenir en mode texte riche. Mais s'ils vont à nouveau modifier ce contenu, CKEditor supprime le <script> balises lors de l'ouverture du contenu.

Comment puis-je arrêter ce comportement et laisser CKEditor quitter le <script> balises en place? Y a-t-il un cadre caché quelque part pour ça?

BTW, nous utilisons CKEditor en conjonction avec Wysiwyg 7.x-2.1 module.

Et oui, en général permettant <script> est très mauvais, mais dans ce cas, les seules personnes qui ont accès au format HTML complet sont les éditeurs (qui font confiance).

Merci!

8
Igor

Vous pouvez résoudre ce problème en accédant à la section "Options avancées" de votre profil CKEditor et en ajoutant la chaîne suivante dans la zone de texte: config.allowedContent = true;

Cela a résolu le problème pour moi.

14
Chris

Je me heurtais à cela aussi, et c'était très frustrant.

Pour moi, le problème était avec le plugin Teaser Break fourni avec le module Wysiwyg. La désactivation de ce bouton pour mon profil Wysiwyg a résolu le problème pour moi.

Vous pouvez désactiver le plugin Teaser Break wysiwyg dans Administration ›Configuration› Création de contenu ›Profils Wysiwyg (/ admin/config/content/wysiwyg).

Je suis très intéressé de savoir si cela résout également votre problème ou si vous rencontriez un problème différent. Je viens de déposer un nouveau bug pour cela sur http://drupal.org/node/1801166 .

9
Benjamin Barber

Je pense que vous cherchez le décor:

  • page admin/config/content/ckeditor/edit/advanced (remplacez advanced par le nom de votre profil).
  • onglet Filtre de contenu avancé.
  • réglé sur Désactivé.

Alternativement, vous pouvez le définir sur Activé et ajouter la balise de script dans "Contenu supplémentaire autorisé", mais avec les scripts autorisés, vous pouvez également autoriser tout.

Ce paramètre provient du module CKEditor, il est donc valable lorsque vous n'utilisez pas le module Wysiwyg. Lorsque vous utilisez wysiwyg <je suppose que vous devez découvrir ce que ce paramètre fait, probablement en définissant certaines options dans le CKEditor.

BTW: Pourquoi utiliser wysiwyg entre les deux au lieu d'aller pour l'ensemble des fonctionnalités de CKEditor. J'ai cessé d'utiliser wysiwyg lorsque CKeditor 4 est sorti et wysiwyg n'a pas pu offrir de support pour cela longtemps après. Comme j'utilise toujours et uniquement CKEditor, quel est l'intérêt d'avoir wysiwyg entre les deux?

2
fietserwin

Avez-vous vérifié les paramètres du format de texte? Pour que "limiter les balises HTML" ne soit pas vérifié? Quoi qu'il en soit, je pense que le module Ckeditor sans module WYSIWYG est plus stable.

0
Marius

Vieille vieille question, mais une autre façon de gérer cela est de désactiver le WYSIWYG par défaut. Si le WYSIWYG ne se déclenche pas (activer/quoi que ce soit) en mode édition, la balise de script n'est pas supprimée. Dans mon cas d'utilisation, cela fonctionne.

0
cdmo