kitty-blog

1、引用js  可在 https://summernote.org/ 官网下载 ,并查看详细的API  引入:summernote.js 和 summernote-zh-CN.js 以及样式文件:summernote.css

2、Html

 1 <textarea class="summernote" data-type="w"></textarea> 

3、初始化summernote 

  1 /**
  2  * 初始化富文本框 summernote
  3  * */
  4 function initSummernote() {
  5     $(\'.summernote\').summernote({
  6         lang: \'zh-CN\',
  7         height: 300,
  8         placeholder: "详情...",
  9         minHeight: null, // set minimum height of editor
 10         maxHeight: null, // set maximum height of editor
 11         focus: false,
 12         disableDragAndDrop: true,
 13         dialogsInBody: true,
 14         dialogsFade: true,
 15         fontSizes: [\'8\', \'9\', \'10\', \'11\', \'12\', \'13\', \'14\', \'15\', \'16\', \'17\', \'18\', \'19\', \'20\', \'21\', \'22\', \'23\', \'24\', \'25\'],
 16         fontNames: [
 17             \'Arial\', \'Arial Black\', \'Comic Sans MS\', \'Courier New\',
 18             \'Helvetica Neue\', \'Helvetica\', \'Impact\', \'Lucida Grande\',
 19             \'Tahoma\', \'Times New Roman\', \'Verdana\', \'Microsoft YaHei\'
 20         ],
 21         toolbar: [
 22             // [groupName, [list of button]]
 23             [\'style\', [\'bold\', \'italic\', \'underline\', \'clear\', \'fontsize\', \'fontname\']],
 24             [\'color\', [\'color\']],
 25             [\'font\', [\'style\', \'strikethrough\', \'superscript\', \'subscript\', \'height\']],
 26             //[\'para\', [\'ul\', \'ol\', \'paragraph\']],
 27             [\'para\', [\'paragraph\']],
 28             //[\'video\', [\'video\']],
 29             [\'picture\', [\'picture\']],
 30             [\'link\', [\'link\']],
 31             [\'table\', [\'table\']],
 32             //[\'hr\', [\'hr\']],
 33             [\'undo\', [\'undo\']],
 34             [\'redo\', [\'redo\']],
 35             [\'help\', [\'help\']],
 36             [\'codeview\', [\'codeview\']]
 37         ],
 38         callbacks: {
 39             //上传回调
 40             onImageUpload: function (files) { //the onImageUpload API
 41                 var type = $(this).data(\'type\');
 42                 $.each(files, function (i, item) {
 43                     sendFile(item, type);
 44                 });
 45             },
 46             //删除回调
 47             onMediaDelete: function (target) {
 48                 deleteFile(target);
 49             }
 50         }
 51     });
 52     //解决选择图片时 打开本地文件夹时,有延时问题。
 53     $(\'.note-image-input\').prop(\'accept\', \'image/jpeg, image/jpg, image/png, image/gif\');
 54 }
 55 /**
 56  * Summernote 上传图片到服务器
 57  * @param {any} file 图片文件
 58  * @param {string} type 图片类型,在textarea 标签 中 添加 data-type 属性 英文 小写
 59  */
 60 function sendFile(file, type) {
 61     data = new FormData();
 62     data.append("file", file);//根据实际情况传参
 63     data.append("dir", type);
 64     $.ajax({
 65         data: data,
 66         type: "POST",
 67         url: "/",
 68         cache: false,
 69         contentType: false,
 70         processData: false,
 71         success: function (result) {
 72             if (result.success) {
 73                 $(".summernote").summernote(\'insertImage\', result.url);
 74             } // the insertImage API
 75         },
 76         error: function () {
 77             alert(\'上传失败!\');
 78         }
 79     });
 80 }
 81 /**
 82  * Summernote 删除到服务器中的图片
 83  * @param {object} target//回调参数
 84  */
 85 
 86 function deleteFile(target) {
 87     var picUrl = target.attr(\'src\');
 88     $.ajax({
 89         data: { },
 90         type: "POST",
 91         url: "/",
 92         processData: true,
 93         success: function (result) {
 94         },
 95         error: function () {
 96             alert(\'删除失败!\');
 97         }
 98     });
 99 
100 }

4、使用:直接调用 

initSummernote()就可以完成初始化。

 

分类:

技术点:

相关文章: