demo项目开发笔录(UEditor实践)

Baidu UEditor 富文本编辑器:从入门到深度定制 本文全面解析Baidu UEditor富文本编辑器的使用与定制,从基础配置到高级开发,涵盖上传设置、跨域处理、移动端适配等实战技巧。通过插件开发和主题定制,可打造专属编辑器,同时提供性能优化与安全防护方案,助力开发者高效集成这一强大的富文本编辑器工具。 阅读详情

这里记录一个文本编辑插件的使用:

UEditor 是由百度「FEX前端研发团队」开发的所见即所得富文本web编辑器,具有轻量,可定制,注重用户体验等特点,开源基于MIT协议,允许自由使用和修改代码。

这里笔者在完成“写文章”功能时使用了这个编辑插件,官方文档调用方式如下:

一,下载插件

二,调用如下:

<!DOCTYPE HTML>
<html lang="en-US">
<head>
    <meta charset="UTF-8">
    <title>ueditor demo</title>
</head>
<body>
    <!-- 加载编辑器的容器 -->
    <script id="container" name="content" type="text/plain">
        这里写你的初始化内容
    </script>
    <!-- 配置文件 -->
    <script type="text/javascript" src="ueditor.config.js"></script>
    <!-- 编辑器源码文件 -->
    <script type="text/javascript" src="ueditor.all.js"></script>
    <!-- 实例化编辑器 -->
    <script type="text/javascript">
        var ue = UE.getEditor('container');
    </script>
</body>
</html>

打开网页如下:


下面说说笔者使用时的一些具体操作:

一,引用时多引用一个加载中文的js

<!--建议手动加在语言,避免在ie下有时因为加载语言失败导致编辑器加载失败-->
<!--这里加载的语言文件会覆盖你在配置项目里添加的语言类型,比如你在配置项目里配置的是英文,这里加载的中文,那最后就是中文-->
<script type="text/javascript" charset="gbk" src="${pageContext.request.contextPath}/static/ueditor/lang/zh-cn/zh-cn.js"></script>

二,实例化编辑器时有选择的进行功能按钮的现实

<!-- 实例化编辑器 -->
        var ue = UE.getEditor('editor',{
            toolbars:[
                ['bold','indent','selectall','cleardoc','fontfamily','fontsize','emotion','justifyleft',
                'justifyright','justifycenter','justifyjustify']
            ]
        });

三,不直接在div内使用<script>标签,原因是:虽然不影响功能但会在idea编辑器中会报html节点标签未关闭的错误。

措施如下:

 <div id="editorDiv">
     <!-- 加载编辑器的容器 -->
 </div>
        $(document).ready(function () {
            var html = "<script id=editor name=content type=text/plain style=width:100%;height:500px;/>";
            $('#editorDiv').html(html);
        })


保存文章主要代码如下:

<%--主体--%>
        <div class="w3-col" style="width: 55%; margin-top: 1px;margin-bottom: 15px;">
            <div class="w3-container w3-white w3-round">
                <div class="w3-text-grey" style="margin-top: 5px">GCC > 创建新主题</div>
                <hr style="margin-top: 8px"/>
                <div class="w3-text-grey" style="margin-top: -15px"> 主题标题</div>
                <hr style="margin-top: 8px"/>
                <div style="margin-top: -10px">
                    <input class="w3-input" id="title" name="title" style="width: 100%;height: 35px " placeholder="请输入主题标题,如果标题能够表达完整内容,则正文写如题即可">
                </div>
                <div class="w3-text-grey" style="margin-top: 10px"> 正文</div>
                <hr style="margin-top: 8px"/>
                <div id="editorDiv">
                    <!-- 加载编辑器的容器 -->
                </div>
                <hr style="margin-top: 8px"/>
                <div style="margin-top: -10px">
                    <select id="typeId" class="w3-btn w3-white w3-border w3-card-2 w3-text-grey" style="width: 200px;text-align: left">
                        <option value="">请选择节点</option>
                        <option value="1">技术</option>
                        <option value="2">问与答</option>
                    </select>
                </div>
                <div style="text-align: center;margin-top: 10px;margin-bottom: 10px">
                    <input class="w3-btn w3-teal w3-small" style="width: 80px;" type="button" value="发布主题" onclick="submitData()">
                </div>
            </div>
        </div>
    <%--js--%>
    <script>
        <!-- 实例化编辑器 -->
        var ue = UE.getEditor('editor',{
            toolbars:[
                ['bold','indent','selectall','cleardoc','fontfamily','fontsize','emotion','justifyleft',
                'justifyright','justifycenter','justifyjustify']
            ]
        });

        //保存文章
        function submitData(){
            var title=$("#title").val();
            var typeId=$("#typeId").val();
            var content=UE.getEditor('editor').getContent()
            if(title==null || title==''){
                alert("标题不能为空");
            }else if(typeId==null || typeId==''){
                alert("请选择节点");
            }else if(content==null || content==''){
                alert("内容不能为空");
            }else{
                $.post("${pageContext.request.contextPath}/saveArticle.html",
                    {	'title':title,
                        'typeId':typeId,
//                        'contentNoTag':UE.getEditor('editor').getContentTxt(),//纯文本内容,使用lucence分词的话需要
                        'content':content
//                        'summary':UE.getEditor('editor').getContentTxt().substr(0,155),//截取文章部分内容
                        },
                    function(result){
                        if(result.flag){
                            alert("发布成功");
                            resultValue();
                        }else{
                            alert("发布失败");
                        }
                    },"json");
            }
        }

        //清空
        function resultValue(){
            $("#title").val("");
            $("#typeId").val("");
            UE.getEditor('editor').setContent('');
        }

        $(document).ready(function () {
            var html = "<script id=editor name=content type=text/plain style=width:100%;height:500px;/>";
            $('#editorDiv').html(html);
        })
    </script>

后台方法如下:

    @RequestMapping("saveArticle")
    public String saveArticle(Article article, HttpServletResponse response) throws Exception {
        int resultTotal=0;
        if(article.getId()==null){
            resultTotal = articleService.saveArticle(article);
        }else {
            resultTotal = articleService.updateArticle(article);
        }
        JSONObject result = new JSONObject();
        if(resultTotal>0){
            result.put("flag", true);
        }else {
            result.put("flag", false);
        }
        ResponseUtil.write(response,result);
        return null;
    }
    public int saveArticle(Article article) {
        String id = UuidUntil.getUUID();
        article.setId(id);
        String currentDate = DateUntil.getCurrentDate("yy-MM-dd HH:mm");
        article.setPostTime(currentDate);
        return articleDao.saveArticle(article);
    }

笔者部分页面内容如下:





Vue项目玩转Ueditor(百度富文本编辑器),解决图片需要上传服务器的问题,将图片转存base64字符串。 文章目录1. 场景描述2. 问题描述3.较为流行的几个富文本编辑器比较3.1、wangEditor3.2、百度的ueditor3.3、KindEditor3.4、bootstrap-wysiwyg3.5、QuillEditor4.Ueditor的集成 1. 场景描述 最近在做一个网站,里面有发布文章的功能。需要使用到富文本编辑器来发布文章。 实现思路: 富文本编辑排版=》转存html=》服务器存储为txt文件=》数据库存储访问地址=》 前端访问后台服务拿到访问地址=》请求url拿到文章内容=》渲染到页面。 阅读详情

相关推荐

UEditor完整demo

里面包含UEditor的完整用法,解压完毕以后直接打开Index可以直接运行,效果就出来了!

【富文本编辑器】Ueditor的demo——创建、修改——代码使用

富文本编辑器,Multi-function Text Editor, 简称 MTE, 是一种`可内嵌于浏览器`,所见即所得的文本编辑器

m0_70083523的博客 2225

百度富文本编辑器UEditorDemo

百度富文本编辑器UEditor示例,图片、视频、附件等上传可用。

ueditor使用demo

&lt;script type="text/javascript" charset="utf-8" src="./lib/ueditor/ueditor.config.js"&gt;&lt;/script&gt; &lt;script type="text/javascript" charset="utf-8" src="./lib/ueditor/ue

ysm19950927的博客 2364

ueditor编辑框demo

ueditor编辑框,在较多管理系统比较常用,各语言对传输的数据注意前后端编码格式转换,ueditor编辑框demo可满足常用功能,可以直接执行测试效果。

baidu编辑器 ueditor umeditor demo实例源码

baudu编辑器 editor和umeditor版本的使用demo,包括初始化控件 控件取值 以及自定义工具栏。下载的编辑器源码已经改过生成成功。

ThinkPHP---ue编辑器

【一】简介 (1)介绍 一款百度开发的JS插件 ue编辑器,全称Ueditor(翻译为你的编辑器),百度开发的在线编辑器,是一款在线编辑器软件,在线编辑器又称为“富文本编辑器”。 国外也有一款类似的编辑器CKeditor 百度ue编辑器官网网址:http://ueditor.baidu.com (2)作用 常见的例如新闻文章的发布编辑、格式化新闻、添加图片或视频等。用的时候和Word...

weixin_30653097的博客 318

Ueditor Demo

Ueditor Demo Ueditor Demo Ueditor Demo Ueditor Demo

UEditor富文本编辑器

UEditor是由百度WEB前端研发部开发的所见即所得的开源富文本编辑器,具有轻量、可定制、用户体验优秀等特点。开源基于BSD协议,所有源代码在协议允许范围内可自由修改和使用。百度UEditor的推出,可以帮助不少网站开发者在开发富文本编辑器所遇到的难题,节约开发者因开发富文本编辑器所需要的大量时间,有效降低了企业的开发成本。

Wolf__king的博客 5211

ueditor demo java

ueditor java 基本的模块基本完成。需要进一步的深化,研究。

ubuntu通过qemu安装银河麒麟V10_Arm_v8 (kylin_v10_飞腾/鲲鹏版)

一、windows下安装vmware虚拟机 二、ubuntu下载地址 https://mirrors.tuna.tsinghua.edu.cn/ubuntu-releases/20.04/ubuntu-20.04.3-live-server-amd64.iso 三、vmware中新建虚拟机,并使用ubuntu-20.04.3-live-server-amd64.iso作为启用盘 。。。在虚拟机中安装ubuntu(略) 四、配置ssh(如果ssh登录不上时配置) 修改openssh的配置 vi /etc/s

u010533742的博客 8704

ueditor百度富文本编辑器的使用(一)

1 入门部署和体验 1.1 下载编辑器 到官网下载 UEditor 最新版:官网地址 1.2 创建demo文件 解压下载的包,在解压后的目录创建 demo.html 文件,填入下面的html代码 <!DOCTYPE HTML> <html lang="en-US"> <head> <meta charset="UTF-8"> &lt...

闲时不练功,忙时一场空 313

遥感大模型的深度学习从CNN到Vision Transformer以及混合架构的演进之路

深度学习,特别是以卷积神经网络(CNN)和Transformer为代表的“大模型”技术,正以其强大的表征学习能力,深刻地重塑着遥感智能解译的整个技术栈与认知范式。本文将系统性地梳理遥感大模型从局部卷积的奠基,到全局注意力的革命,再到二者融合的混合架构演进这一波澜壮阔的历程。我们将深入剖析每个阶段的核心技术原理,结合遥感数据特性与实际应用案例,详细阐述其在分类、检测、分割等核心任务中的具体应用。

panshengwu的博客 1138

百度编辑器UEditor与UEditor 公式插件完整Demo

1、下载UEditor(我的是.net项目) 2、下载UEditor公式插件 3、新建解决方案和项目 4、在浏览器中预览index.html页面 结果: 5、index.html源码 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://...

weixin_30414305的博客 1282

从病毒分析到安全研究:手把手教你用OD破解加壳程序的反调试机制

本文深入探讨了如何识别并绕过加壳程序的反调试机制,特别是针对使用IsDebuggerPresent等API检测的防护手段。通过实战案例和工具链配置,详细介绍了逆向工程中的关键技巧,包括内存补丁、硬件断点定位OEP等,帮助安全研究人员有效突破软件保护技术。

tgb345678的博客 823

重装系统后,恢复Oracle的.ORA文件

前几天,系统莫名奇妙产生很多宏病毒,进而感染整个C盘,不得已,格式化后重装了系统。 重装系统之后,突然想到D盘中的oracle中很多数据没导出来备份,安装文件下有很多有用的.ORA文件,抱着死马当活马医的态度,居然成功了。 1、将原来D盘(D:\oracle\product\10.2.0\oradata\orcl)下的数据文件备份下其他盘,将D盘的oracle目录名改成oracle1。安装数据

zhanggnol的blog 5551

前端富文本编辑器UEditor的使用(1)——下载、创建demo、ueditor.all.js文件找不到的解决方法

UEditor的使用可以查看:UEditor文档 1.下载 到官网下载UEditor编辑器:https://github.com/fex-team/ueditor Step1:git clone 仓库 https://github.com/fex-team/ueditor.git Step2:安装依赖(如果没有安装 grunt , 请先在全局安装 grunt) npm install Step3:在终端执行 grunt default grunt default 2.

Tansum 2740

VirtualBox增强功能安装全指南:从下载到配置复制粘贴功能

本文详细介绍了VirtualBox增强功能的完整安装与配置流程,重点解决了虚拟机与主机间复制粘贴、文件拖放等核心协作难题。通过分步指南和故障排查,帮助用户在不同操作系统(如Windows、Linux)中实现无缝集成,提升虚拟化工作效率与体验。

weixin_29206669的博客 419

简单了解下UEditor的使用

目前网上的富文本编辑器多的可以说是数不胜数,但是百度的UEditor可以算是其中的佼佼者,今天就简单的了解一下这款富文本编辑器。下载:点击打开链接其实几乎所有的富文本编辑器都是一样的模子,下载的时候分为好几个版本的,您可以根据需要自己下载对应的版本,其中有一个源码的版本是集成了所有的版本,相对的文件比较大一些,如图所示:下载好了解压以后是这样的:想要看效果很简单,创建一个demo.html,代码是...

红岸基地 595

AD18软件——捕捉栅格、电气栅格、可见栅格的意义及设置

本文介绍了PCB设计中的三种栅格功能:可视栅格用于辅助定位(快捷键Shift+Ctrl+G),捕捉栅格控制光标移动间距(快捷键G),电气栅格实现元件自动吸附(快捷键Shift+E)。同时提供了在Altium Designer中快速查找相同网络标号的两种实用方法:Alt+鼠标单击或双击网络。这些功能可显著提高PCB设计效率和准确性。

qq_37999850的博客 645

YOLO26涨点改进 | 独家创新,细节涨点改进篇 | CVPR 2025顶会 | YOLO26引入Mona即插即用模块, 含MoCAA和DyTMona二次创新改进,含多种创新改进高效发论文

本文给大家介绍Mona即插即用模块, 含MoCAA和DyTMona二次创新模块优化YOLO26模型。YOLO26引入 Mona通过引入多尺度视觉友好型卷积滤波器(如3x3、5x5、7x7深度卷积)和可伸缩归一化层来优化适配器设计,以更好地处理视觉信号并调节输入特征分布。YOLO26引入Mona即插即用模块, 含MoCAA和DyTMona二次创新改进,含多种创新改进高效发论文。适合目标检测、图像分割、图像分类等所有CV任务通用即插即用模块。

Ai缝合怪、助力小伙伴高效发论文 240

UEDITOR批量上传WORD图片

UEDITOR WORD图片上传,UEDITOR – 支持WORD上传的富文本编辑器,UEDITOR的WORD图片转存-UEDITOR篇,百度UEDITOR实现WORD图片自动转存,富文本编辑器UEDITOR支持从WORD复制粘贴保留格式和图片的插件,富文本编辑器粘贴WORD内容,说几点,首先就是没有提供完整的产品,或者测试示例,或者提供的示例缺依赖,缺包,缺代码,测试的时候问题一大堆,不是这错就是那错的,真的挻浪费时间的,也可以看得出来,文章里面的方案基本上都是不行的,word图片快捷键粘贴,

weixin_52041354的博客 1076

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

初识百度前端编辑器UEditor

    专业医养综合系统的开发框架已经基本构建完成,采用了B/S模式,以适应未来分布式和云平台应用。    对于医院信息系统来说,电子病历是关键的功能模块之一,而B/S结构的电子病历并不常见,因此为了配合开发框架的适应,必须自主研发一款B/S结构的电子病历,而对于电子病历来说,前端的富文本编辑器尤其重要。    随着网络技术的不断发展,B/S结构软件越来越普遍,对前端编辑器的要求与日俱增,因此涌现...

1749

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

简单的在项目中整合UEditor上传图片文件

因为最近项目收到一个需要添加帮助中心的需求,帮助中心需要能支持富文本编辑,上传图片,多图,视频等等,原先项目中使用的是CKeditor,在使用中多图上传和视频上传似乎存在一定的问题,搜寻答案无果,就决定跟换富文本编辑器,对比几个富文本编辑器觉得百度的UEditor挺不错的,蛮符合要求,界面也还可以,就决定是它了,开干。 准备部分 搜索UEditor官方网址https://ued...

qq_34688048的博客 1425

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

SpringBoot-结合thymeleaf和mybatis案例

今天记录下对springBoot的初步使用。笔者不知道各位同道中人有多少大牛和多少新嫩,新嫩无疑是幸运的,入手学习的第一套框架极大可能就是SpringMvc+spring+mybatis。不用经历struct2和hibernate的洗礼,不用面对曾今的一堆繁琐的xml,至少你是在大量使用注解的时代。笔者属于新老交接的时间2014开始接触java,是学校专业,但基础不好,一路被老学长坑带学了各种古老...

gcc_java的博客 1836
上一篇: demo项目开发笔录(头像上传)
下一篇: demo项目开发笔录(简单分页实践)
gcc_front
博客等级 码龄9年 16粉丝 98原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值