2015-11-12 7 views
4

Я использую wysiwyg, называемый summernote, значения которого я отправляю на сервер, где я очищаю его с помощью HTML Purifier. После этого я сохраняю его в БД (mysql). Затем мне нужно показать очищенный html обратно в wysiwyg, поэтому напишите его как значение textarea (текстовое поле связано в js с summernote). Но он отображает экранированный html вместо форматированного текста. Редактор работает нормально, а js console не показывает ошибок.Исключенный HTML в summernote

Javascript Я использую Инициализировать summernote

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

Это скриншот WYSIWYG (в режиме воздуха, так средства не показаны) с консоли проверки его значение.

enter image description here

шаблон латте из WYSIWYG:

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

ответ

6

Последние Summernote (v0.7 от времени этого ответа) есть изменения, которые могут вызвать проблемы, если вы привыкли работать с предыдущей версии (или чтения ресурсов в Интернете, написанных для предыдущей версии, большинство из которых есть.)

Нельзя использовать textarea для summernote. Он должен быть div. Но вы не можете отправить div с вашим сообщением формы, для этого вам нужно использовать hidden textarea с его надлежащим свойством id/name и html формы, связанным с событиями summernote. init и blur.

Вот пример:

стороне сервера

Это ASP.NET Razor sytax, я уверен, вы можете понять, что это то, что

<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> 

стороне клиента

$(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

Для любой, кто использует Rails, вот исправление, которое сработало для меня: https://github.com/summernote/summernote-rails/issues/38#issuecomment-167679385 – Sooie

Смежные вопросы