抛弃百度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,就是选择文件的时候弹出框很慢,十分不爽,找到如下两个文件修改其中代码即可

 

相关文章
|
数据格式 JavaScript JSON
使用百度UMeditor富文本编辑器,修改自定义图片上传,修改源码
富文本编辑器,不多说了,这个大家应该都用到过,至于用到的什么版本,那就分很多种 CKEditor:很早以前叫FCK,那个时候也用过,现在改名了,比较流行的一个插件,国外很多公司在用 UEDITOR:百度开发的插件,lite版是UM EasyUI编辑器:用easyUI的都懂,基本上肯定用到 其他的富文...
1507 0
|
4月前
|
存储 Kubernetes 容器
百度搜索:蓝易云【Kubernetes使用helm部署NFS Provisioner】
现在,你已经成功使用Helm部署了NFS Provisioner,并且可以在Kubernetes中创建使用NFS存储的PersistentVolumeClaim。
191 10
|
4月前
百度搜索:蓝易云【什么是HTTP长轮询?】
现在,HTTP长轮询逐渐被WebSocket等更高效的实时通信技术所替代,但了解HTTP长轮询仍然有助于理解实时数据推送的基本原理。
115 9
|
4月前
|
移动开发 Shell Linux
百度搜索:蓝易云【Shell错误:/bin/bash^M: bad interpreter: No such file or directory】
将 `your_script.sh`替换为你的脚本文件名。运行此命令后,脚本文件的换行符将被转换为Linux格式,然后就可以在Linux系统上正常执行脚本了。
64 8
|
4月前
百度搜索:蓝易云【ipmitool配置BMC的ip】
以上操作将配置BMC的IP地址为新的值。请注意,操作BMC需要谨慎,确保你对服务器有足够的权限,并且仔细检查新的IP地址、子网掩码和默认网关,以免导致服务器网络失联。
78 7
|
4月前
|
Kubernetes 应用服务中间件 nginx
百度搜索:蓝易云【使用Kubernetes部署Nginx应用教程】
现在,你已经成功在Kubernetes集群上部署了Nginx应用。通过访问Service的外部IP地址,你可以访问Nginx服务。
76 4
|
4月前
|
缓存 网络协议 Linux
百度搜索:蓝易云【解决github push/pull报错443】
通过以上方法,你有望解决GitHub push/pull报错443的问题。如果问题仍然存在,建议检查GitHub的状态页面,看是否有正在维护或故障的情况。
122 3
|
4月前
|
Linux Perl
百度搜索:蓝易云【Linux常用命令awk】
以上仅是awk命令的一些常见用法,它还有许多更复杂的功能和用法,可以根据需要灵活运用。awk在文本处理和数据分析中非常实用,是Linux系统中的一把利器。
47 2
|
4月前
|
编解码 应用服务中间件 nginx
百度搜索:蓝易云【基于Nginx与Nginx-rtmp-module实现】
综上所述,基于Nginx与Nginx-rtmp-module的组合,可以搭建一个功能强大的流媒体服务器,用于实现直播和点播服务。
71 1
|
4月前
|
Linux
百度搜索:蓝易云【Linux系统ps命令:查看正在运行的进程】
通过这些简洁的ps命令用法,你可以方便地查看Linux系统中正在运行的进程信息。
74 1