我使用的是名为summernote的wysiwyg,它是我发送给服务器的值,在那里我使用HTML净化器来净化它。之后,我将其保存到DB (mysql)中。然后,我需要将纯化的html显示在wysiwyg中,因此将其写为textarea值( textarea在js中与summernote链接)。但它显示的是转义的html,而不是格式化的文本。编辑器正常工作,js控制台没有显示错误。
我习惯于在夏季笔记中使用Javascript
$('.summernote').summernote({
lang: 'cs-CZ',
height: 100,
airMode: true,
prettifyHtml: true
});这是wysiwyg的屏幕截图(在air模式下,所以不显示工具),控制台检查它的值。

wysiwyg的拿铁模板:
<textarea name="{$key}" class="summernote form-control" >{$value->value|noescape}</textarea> 发布于 2015-11-26 11:55:52
最新的Summernote (截至此答案的版本为0.7)有一些更改,如果您习惯于使用以前的版本(或在Internet上为以前的版本编写的资源(大多数版本都是这样),则可能会出现问题。
您不应该再在summernote中使用textarea。应该是div。但是您不能在表单post中提交一个div,因为您需要使用一个hidden textarea,它的适当形式id/name和html属性绑定到summernote事件。init和blur.
下面是一个示例:
服务器端
这是ASP.NET Razor系统税,我相信你能搞清楚什么是什么
<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
....
});
});发布于 2020-09-03 19:12:26
今天也发生了类似的事情,所以我用这样的方式解决了这个问题:
$('.summernote', elmnOfContext).summernote({
lang: 'pl-PL',
toolbar: [
['edit', ['undo', 'redo']]
//...
],
callbacks: {
onInit: function() {
//The trick:
var textarea = $(this);
textarea.val(textarea.summernote("code"));
}
}
});由于该解决方案,即使用户不做任何更改,也正确地转义了被视为textarea值的源。简单地说,当summernote编辑器开始时。
https://stackoverflow.com/questions/33673544
复制相似问题