抛弃百度UMEditor,拥抱summernote (解决上传文件又慢又卡的问题)

简介: 由于一些项目上的原因以及相关因素,我们使用其他富文本编辑器替代了UMEditor本来用CKEditor,但是团队觉得使用起来很不顺手,尤其图片上传十分不爽,功能复杂但是使用起来比较麻烦后来我们又替换了summernote,这款编辑器名气没有ck大,但是简介直观,而且风格和项目很匹配,最终决定使用这款这是github地址,先下载https://github.

由于一些项目上的原因以及相关因素,我们使用其他富文本编辑器替代了UMEditor

本来用CKEditor,但是团队觉得使用起来很不顺手,尤其图片上传十分不爽,功能复杂但是使用起来比较麻烦

后来我们又替换了summernote,这款编辑器名气没有ck大,但是简介直观,而且风格和项目很匹配,最终决定使用这款

这是github地址,先下载

https://github.com/summernote/summernote

然后在文件中引入css以及js,注意要使用国际化文件则引入语言包,不然默认显示英文

<!-- include summernote css/js-->
    <link href="<%=request.getContextPath() %>/static/global/plugins/summernote/dist/summernote.css" rel="stylesheet">
    <script src="<%=request.getContextPath() %>/static/global/plugins/summernote/dist/summernote.js"></script>
    <script src="<%=request.getContextPath() %>/static/global/plugins/summernote/lang/summernote-zh-CN.js"></script>

在html中加入编辑器

<div>
    <div id="summernote" style="height: 300px;">Hello Summernote</div>
</div>

最后初始化

$(document).ready(function() {
        $("#summernote").summernote({
            lang : "zh-CN",
            height: 150,
            callbacks: {  
                onImageUpload: function(files, editor, $editable) {  
                    sendFile(files);  
                }  
            }  
        })
    });

需要注意的是,默认上传是需要修改的,不然会以二进制的文件形式,性能受影响

function sendFile(files, editor, $editable) {  
        
        var size = files[0].size;
        if((size / 1024 / 1024) > 2) {
            alert("图片大小不能超过2M...");
            return false;
        }
        
        var data = new FormData();  
        data.append("ajaxTaskFile", files[0]);  
        
        var hdnContextPath = $("#hdnContextPath").val();
        
        $.ajax({  
            data : data,  
            type : "POST",  
            url : hdnContextPath + "/file/upload.action",    // 图片上传出来的url,返回的是图片上传后的路径,http格式  
            cache : false,  
            contentType : false,  
            processData : false,  
            dataType : "json",  
            success: function(data) {//data是返回的hash,key之类的值,key是定义的文件名  
            
                $.each(data.data, function (index, file) {
                    $('#summernote').summernote('insertImage', file.url);  
                }); 
                
            },  
            error:function(){  
                alert("上传失败");  
            }  
        });  
    }  

后台代码就不放出了,之前讲过多次了,参照一下即可

最终需要注意的是,这个上传文件有个bug,就是选择文件的时候弹出框很慢,十分不爽,找到如下两个文件修改其中代码即可

 

相关文章
|
5月前
|
数据采集 前端开发 JavaScript
《花100块做个摸鱼小网站! 》第四篇—前端应用搭建和完成第一个热搜组件
本文档详细介绍了从零开始搭建一个包含前后端交互的热搜展示项目的全过程。通过本教程,读者不仅能学习到完整的项目开发流程,还能掌握爬虫技术和前后端交互的具体实践。适合有一定编程基础并对项目实战感兴趣的开发者参考。
93 1
|
5月前
|
JSON JavaScript 前端开发
震惊!JS如何悄无声息追踪你的每一步?揭秘页面访问与关闭的超级上报大法,让数据说话,优化体验不再难!
【8月更文挑战第4天】在Web开发中,跟踪用户行为对提升体验与留存至关重要。本文以在线学习平台为例,介绍如何用JavaScript监听页面访问及关闭,并上报数据。通过`window.onload`监测页面加载,记录用户访问;利用`navigator.sendBeacon`在用户离开时发送少量数据至服务器,无需担心请求失败。需注意隐私合规、性能影响及浏览器兼容性。此技术有助于深入理解用户行为,为产品迭代提供依据。
220 8
|
Web App开发 缓存 前端开发
雅虎前段优化35条(二)
雅虎前段优化35条
72 0
|
缓存 前端开发 网络协议
雅虎前段优化35条(一)
雅虎前段优化35条
48 0
|
人工智能 网络协议
新必应(New Bing)申请出错终极方案
随着ChatGPT的爆火,微软推出了AI驱动的新必应(New Bing),新必应大大提升了Bing的体验和效率,一时间吸引力众多申请和试用。 然而很多想要加入新必应候补名单时,却总是报出错了,请重试。
4346 1
新必应(New Bing)申请出错终极方案
|
机器学习/深度学习 编解码 并行计算
仅做两项修改,苹果就让StyleGANv2获得了3D生成能力
仅做两项修改,苹果就让StyleGANv2获得了3D生成能力
101 0
|
前端开发
#yyds干货盘点 【React工作记录二十】前端常规关于网页文件下载的问题
#yyds干货盘点 【React工作记录二十】前端常规关于网页文件下载的问题
103 0
|
前端开发
前端工作总结293-uni-增加添加成功提示
前端工作总结293-uni-增加添加成功提示
91 0
|
搜索推荐 Python
bing搜索崩溃无法访问?别慌,我来教你各大搜索引擎的选择
bing搜索崩溃无法访问?别慌,我来教你各大搜索引擎的选择
411 0
bing搜索崩溃无法访问?别慌,我来教你各大搜索引擎的选择
|
Web App开发 SQL 缓存
Chrome 技术篇-F12开发者工具清理缓存,高级、专业清浏览器缓存,storage和cache都指什么、区别
Chrome 技术篇-F12开发者工具清理缓存,高级、专业清浏览器缓存,storage和cache都指什么、区别
1158 0
Chrome 技术篇-F12开发者工具清理缓存,高级、专业清浏览器缓存,storage和cache都指什么、区别