FastAdmin 早期版本(不确定新版本是否存在此问题),会存在粘贴图片时出现了2个问题。
在 /public/assets/js/addons.js 文件中,summernote 定义处,替换为以下:
$(".summernote,.editor", form).summernote({ height: 250, lang: 'zh-CN', fontNames: [ 'Arial', 'Arial Black', 'Serif', 'Sans', 'Courier', 'Courier New', 'Comic Sans MS', 'Helvetica', 'Impact', 'Lucida Grande', "Open Sans", "Hiragino Sans GB", "Microsoft YaHei", '微软雅黑', '宋体', '黑体', '仿宋', '楷体', '幼圆', ], fontNamesIgnoreCheck: [ "Open Sans", "Microsoft YaHei", '微软雅黑', '宋体', '黑体', '仿宋', '楷体', '幼圆' ], toolbar: [ ['style', ['style', 'undo', 'redo']], ['font', ['bold', 'underline', 'strikethrough', 'clear']], ['fontname', ['color', 'fontname', 'fontsize']], ['para', ['ul', 'ol', 'paragraph', 'height']], ['table', ['table', 'hr']], ['insert', ['link', 'picture', 'video']], ['select', ['image', 'attachment']], ['view', ['fullscreen', 'codeview', 'help']], ], buttons: { image: imageButton, attachment: attachmentButton, }, dialogsInBody: true, followingToolbar: false, callbacks: { onChange: function (contents) { $(this).val(contents); $(this).trigger('change'); }, onInit: function () { }, onImageUpload: function (files) { var that = this; // 依次上传图片 for (var i = 0; i < files.length; i++) { Upload.api.send(files[i], function (data) { var url = Fast.api.cdnurl(data.url); $(that).summernote("insertImage", url, 'filename'); }); } }, onPaste: function (ne) { var bufferText = ((ne.originalEvent || ne).clipboardData || window.clipboardData).getData('Text/plain'); ne.preventDefault ? ne.preventDefault() : (ne.returnValue = false); document.execCommand("insertText", false, bufferText); }, } });
或者,在 callbacks 中仅对粘贴处理:
,onPaste: function (ne) { var bufferText = ((ne.originalEvent || ne).clipboardData || window.clipboardData).getData('Text/plain'); ne.preventDefault ? ne.preventDefault() : (ne.returnValue = false); document.execCommand("insertText", false, bufferText); }