Skip to content
网游世界
网游世界

吾生有涯,而知无涯。

  • 首页
  • PHP
    • ThinkPHP
    • FastAdmin
    • webman
  • JavaScript
    • jQuery
    • AdminLTE
  • Free Pascal
  • Java
    • JeeSite
    • 若依
    • ruoyi-vue-pro
  • 其它
    • 操作系统
    • 树莓派
    • 前端
    • Null
  • 关于
网游世界

吾生有涯,而知无涯。

FastAdmin summernote 粘贴图片2次问题

3Vshej, 2024年8月27日 周二2024年8月27日 周二

FastAdmin 早期版本(不确定新版本是否存在此问题),会存在粘贴图片时出现了2个问题。


在 /public/assets/js/addons.js 文件中,summernote 定义处,替换为以下:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
$(".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);
},
}
});
$(".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); }, } });
$(".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 中仅对粘贴处理:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
,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);
}
,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); }
,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);
}

 

相关文章:

  1. FastAdmin Summernote 清除格式 需求是这样的,录入内容时,大多是从 Word 中粘贴过来的,内容很少,但实际代码却很多,存储时,提示......
  2. FastAdmin 添加、编辑页复用 FastAdmin 中,大多情况下,添加页与编辑页内容是相同的,区别在于添加页无默认数据,编辑页需要......
  3. FastAdmin 载入语言包 在开发中需要使用其他模块的语言包,你可以使用以下方式:...
  4. FastAdmin table 跨行跨列处理 在开发中,需要对表格跨行跨列处理,也就是说,需要合并单元格;这里介绍使用方式。...
FastAdmin JavaScript FastAdmin 框架Summernote 插件粘贴图片

文章导航

Previous post
Next post

近期文章

  • Fiddler 替换请求地址
  • nginx http https 使用同一端口
  • FreePascal 、Lazarus IDE、Lazarus 包镜像
  • Android Studio Gradle 配置国内镜像
  • 为什么重新发明轮子

归档

  • 2025 年 6 月
  • 2025 年 5 月
  • 2025 年 4 月
  • 2025 年 3 月
  • 2025 年 2 月
  • 2025 年 1 月
  • 2024 年 12 月
  • 2024 年 11 月
  • 2024 年 10 月
  • 2024 年 9 月
  • 2024 年 8 月
  • 2024 年 7 月
  • 2024 年 6 月
  • 2024 年 5 月
  • 2024 年 4 月
  • 2024 年 3 月
  • 2024 年 2 月
  • 2024 年 1 月
  • 2023 年 12 月
除非特殊说明,本站作品采用知识共享署名 4.0 国际许可协议进行许可。
豫公网安备 41010402002622号 豫ICP备2020029609号-3
©2025 3Vshej
网游世界
  • 首页
  • PHP
    • ThinkPHP
    • FastAdmin
    • webman
  • JavaScript
    • jQuery
    • AdminLTE
  • Free Pascal
  • Java
    • JeeSite
    • 若依
    • ruoyi-vue-pro
  • 其它
    • 操作系统
    • 树莓派
    • 前端
    • Null
  • 关于