2015-11-12 1 views
4

J'utilise wysiwyg appelé summernote dont les valeurs que j'envoie au serveur, où je le purifie avec HTML Purifier. Après cela, je l'enregistre dans la base de données (mysql). J'ai alors besoin de montrer le html purifié dans le wysiwyg, ainsi écrivez-le comme valeur de textarea (le textarea est lié dedans js avec summernote). Mais il montre html échappé au lieu de texte formaté. L'éditeur fonctionne normalement et la console js ne montre aucune erreur.Escaped HTML dans summernote

Javascript J'utilise init summernote

 $('.summernote').summernote({ 
     lang: 'cs-CZ', 
     height: 100, 
     airMode: true, 
     prettifyHtml: true 
    }); 

Ceci est capture d'écran de wysiwyg (en mode air si les outils ne sont pas représentés) avec la console inspectant sa valeur.

enter image description here

modèle Latte du WYSIWYG:

<textarea name="{$key}" class="summernote form-control" >{$value->value|noescape}</textarea> 

Répondre

6

Dernières Summernote (v0.7 au moment de cette réponse) a des changements qui pourraient poser problème si vous êtes habitué à travailler avec un précédent version (ou lire des ressources sur Internet écrites pour une version précédente, dont la plupart sont.)

Vous ne devriez plus utiliser textarea pour summernote. Ce devrait être un div. Mais vous ne pouvez pas soumettre un div avec votre message de formulaire, pour cela vous devez utiliser un hidden textarea avec son id/nom de formulaire approprié et la propriété html liée aux événements summernote. init et blur.

Voici un exemple:

côté serveur

Ceci est ASP.NET Razor sytax, je suis sûr que vous pouvez comprendre ce qui est ce que

<textarea id="@Html.IdFor(p=>p.Content)" name="@Html.IdFor(p=>p.Content)" hidden class="someDummyClassName"></textarea> 
<div class="form-control summernote">@Html.Raw(Model.Content)</div> 

côté client

$(document).ready(function() { 
    $('.summernote').on('summernote.init', function() { 
     $('textarea.someDummyClassName').html($('.summernote').summernote("code")) 
    }).on("summernote.blur", function() { 
     $('textarea.someDummyClassName').html($('.summernote').summernote("code")) 
    }).summernote({ 
     height: 280, 
     // YOUR OPTIONS GOES HERE 
      .... 
     }); 
}); 
+0

Pour Quiconque utilise Rails, voici la solution qui a fonctionné pour moi: https://github.com/summernote/summernote-rails/issues/38#issuecomment-167679385 – Sooie