代码之家  ›  专栏  ›  技术社区  ›  Doaa Radwan

未编辑内容时,从Summernote表单获取正确的HTML

  •  0
  • Doaa Radwan  · 技术社区  · 6 年前

    我正在使用此代码在我的页面上显示summernote编辑器

    <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <title>bootstrap4</title>
    <script src="https://code.jquery.com/jquery-3.2.1.slim.min.js"></script>
    <link href="https://cdnjs.cloudflare.com/ajax/libs/summernote/0.8.9/summernote-lite.css" rel="stylesheet">
    <script src="https://cdnjs.cloudflare.com/ajax/libs/summernote/0.8.9/summernote-lite.js"></script>
    .
    .
    .
    <textarea id="summernote" name="summernote">@Model.InviteEmailBody</textarea>
                    <script>
                        $('#summernote').summernote({
                            tabsize: 4,
                            height: 220
                        });
                        $('#summernote').on('summernote.blur', function () {
                            $('#summernote').html($('#summernote').summernote('code'));
                        });
    
                        $('#summernote').html(escape($('#summernote').summernote('code')));
                    </script>
    

    然后保存到数据库

    string str = Request.Form["summernote"];
    string htmlEncoded = WebUtility.HtmlEncode(str);
    roleToUpdate.InviteEmailBody = htmlEncoded;
    

    当我实际编辑内容时,一切都很好,但当我不编辑内容时,str变量中的值有很多

    %3Cdiv%3EHello%20
    

    我不确定我实现summernote的方式是否正确,或者我将如何解决此问题。。如果有人能帮忙,我将不胜感激

    1 回复  |  直到 6 年前
        1
  •  2
  •   Artem    6 年前

    这些垃圾是由

    $('#summernote').html(escape($('#summernote').summernote('code')));

    如果你想 textarea 清除(或预先输入一些文本),可以使用以下语法。第二个参数是要设置的字符串值:

    $('#summernote').summernote('code', '')
    $('#summernote').html(escape($('#summernote').summernote('code', '<b>some</b>')));