百度编辑器(UEditor)开发教程——教你如何二次开发扩展插件(按钮插件)

技术 朱言俊 2016-10-29 阅读:1513

发送到手机

对于网站建设中使用的富文本编辑器不得不提百度的富文本编辑器UEditor了(下面简称ue)。

ue提供了丰富实用的功能,让网络编辑者感觉像使用word一样方便,深受欢迎。对于我们稻壳互联来说ue是基于BSD协议的开源产品,允许自由使用和修改,这就成为稻壳互联Coral系列产品的首选。

在项目中ue提供的功能已可以满足绝大多数的需求,但业务逻辑的复杂多变,又促使着我们需要根据实际业务需求来开发更加强大的功能,接下来就通过几个小列子来带大家来一步步了解网站建设中ue二次开发。

第一篇 添加自定义的普通按钮

我们要实现ue编辑框内“选中文本通过点击自定义按钮实现加粗和还原”插件。

注:本文基于UEditor1.4.3.3版本

1、引入ue相关文件,写好初始代码。

<!doctype html>
<html lang="zh-cn">
<head><meta charset="UTF-8"><title>UEditor添加自定义的普通按钮的示例</title><script type="text/javascript" charset="utf-8" src="ueditor.config.js"></script><script type="text/javascript" charset="utf-8" src="ueditor.all.min.js"></script>
</head>
<body>
<h1>UEditor添加自定义的普通按钮的示例</h1>
<script type="text/plain" id="myEditor"></script><!-- 使用ue -->
<script type="text/javascript">// 自定义的普通按钮// todo::这里待会书写“选中文字通过点击自定义按钮实现加粗和还原”的功能// 实例化ueditorUE.getEditor('myEditor',{toolbars:[['button']],});
</script>
</body>
</html>

2、使用ue提供的registerUI接口。

使用此接口就可以动态注入扩展的内容到ue中了,此为前端开发编写插件的基础,接下来插件的代码都是写在这个接口里面的。

UE.registerUI('button',function(editor,uiName){// 这里写插件的代码
},[index, [editorId]]);

·index,是你想放到toolbar的那个位置,默认是放到最后。

·editorId,当你的页面上有多个编辑器实例时,你想将这个ui扩展到那个编辑器实例上,这里的editorId是给你编辑器初始化时,传入的id,默认是每个实例都会加入你的扩展。

3、注册按钮执行时的command命令

command命令即按钮触发点击、选中等等事件后的动作。这里是我们实现选中加粗的核心代码。execCommand('bold')是ue内部提供的一个命令,执行效果是:加粗已选文本,对已加粗的文本执行该命令将取消加粗。

editor.registerCommand(uiName,{execCommand:function(){editor.execCommand('bold');}
});

4、创建一个button

创建的按钮绑定click事件,并在click事件触发时执行上面注册的command命令。

注意:创建的这个button在registerUi接口中必须返回。

var btn = new UE.ui.Button({name:uiName,title:'加粗',onclick:function () {editor.execCommand(uiName);}
});// 因为你是添加button,所以需要返回这个button
return btn;

好了以上代码已经创建了一个可以使文本加粗的插件了。但是我们做事要尽善尽美,我们希望当点到编辑内容上时,按钮要做的选中的状态反射。

注意:这段代码要写在返回按钮之前。

editor.addListener('selectionchange', function () {if(editor.queryCommandState('bold')){btn.setChecked(true);}else{btn.setChecked(false);}
});return btn;

在响应式网站中做到这一步就已经大功告成了,以下是完整代码:

<!doctype html>
<html lang="zh-cn">
<head><meta charset="UTF-8"><title>UEditor添加自定义的普通按钮的示例</title><script type="text/javascript" charset="utf-8" src="ueditor.config.js"></script><script type="text/javascript" charset="utf-8" src="ueditor.all.min.js"></script>
</head>
<body>
<h1>UEditor添加自定义的普通按钮的示例</h1>
<script type="text/plain" id="myEditor"></script><!-- 使用ue -->
<script type="text/javascript">// 自定义的普通按钮UE.registerUI('button',function(editor,uiName){// 注册按钮执行时的command命令editor.registerCommand(uiName,{execCommand:function(){editor.execCommand('bold');}});// 创建一个buttonvar btn = new UE.ui.Button({name:uiName,title:'加粗',onclick:function () {editor.execCommand(uiName);}});// 当点到编辑内容上时,按钮要做的状态反射editor.addListener('selectionchange', function () {if(editor.queryCommandState('bold')){btn.setChecked(true);}else{btn.setChecked(false);}});return btn;});// 实例化UEditorUE.getEditor('myEditor',{toolbars:[['button']],});
</script>
</body>
</html>

百度编辑器 百度编辑器相关推荐

  1. html 组件化 编辑器,vue.js组件化使用百度富文本编辑器(一)

    注意: 本文采用的编辑器为:idea 1.下载百度富文本编辑器,地址:https://ueditor.baidu.com/website/download.html#ueditor 2.加入到stat ...

  2. Html引入百度富文本编辑器ueditor

    在日常工作用,肯定有用到富文本编辑器的时候,富文本编辑器功能强大使用方便,我用的是百度富文本编辑器,首先需要下载好百度编辑器的demo, 然后创建ueditor.html文件,引入百度编辑器,然后在h ...

  3. 百度富文本编辑jsp上传_百度富文本编辑器教程,从入门到放弃

    原标题:百度富文本编辑器教程,从入门到放弃 百度UEditor 资源与项目分离-完全教程 夏老师人真好 又求到一篇技术贴 来来来 继续掏出小本本 什么是百度UEditor? 百度UEditor是一款富 ...

  4. 百度富文本编辑器UEditor安装配置全过程

    网站开发时富文本编辑器是必不可少的,他可以让用户自行编辑内容的样式然后上传到后台!下面我们来介绍如何安装使用百度富文本编辑器 一.下载并且设置百度富文本编辑器的样式     你可以去百度UEditor ...

  5. 百度html在线编辑器插件,百度编辑器UEditor插件DjangoUeditor v1.8.143

    DjangoUeditor将Ueditor封装为一个Django app,提供文件/图片等上传功能,提供UEditorField.UEditorWidget等封装类,简化Ueditor在Django中 ...

  6. UEditor 百度富文本编辑器 .Net实例

    转自 http://download.csdn.net/download/hdsslxl/6740605 1.UEditor 百度富文本编辑器完整版 .Net实例 已解决上传图片问题. 2.内附完整d ...

  7. themyleaf 图片上传_springboot thymeleaf 整合 百度富文本编辑器UEditor进行图片上传

    项目中需要使用到富文本编辑器,找来找去发现百度UEditor富文本编辑器在国内最为常用因此就尝试引入.编辑器官网是:http://ueditor.baidu.com/website/index.htm ...

  8. 百度编辑器如何在html引入,网页制作中如何集成百度Ueditor网页编辑器

    开发项目必不可少用到在线网页编辑器,常用的网页编辑器有: eWebEditor 网页编辑器.Fckeditor 网页编辑器.KindEditor HTML在线编辑器.百度Ueditor编辑器-- 百度 ...

  9. 百度富文本编辑器ueditor在https协议下无法正常插入动态地图

    在浏览器https协议下,百度富文本编辑器ueditor有可能会无法正常插入动态地图.所谓"动态地图",就是在插入地图的时候,勾选右上角的"动态地图"选择框: ...

  10. 关于dedecms织梦后台html编辑器不能复制word格式的处理方法/ kindEditor编辑器/百度(ueditor)编辑器的添加方法

    Q:word文件内容粘贴到dede后台编辑器里,格式都失效了 dede自带的文本编辑器很不好用,且有些功能还需要我们自己手动去修改源码,才能完成我们想要的效果 一.更换kindEditor编辑器操作步 ...

最新文章

  1. Python中的函数参数类型
  2. 落地三大产业,深耕两个领域,百度AI的这一年|李彦宏乌镇行
  3. asp.net 后台任务作业框架收集
  4. Linux vim中使用计算器
  5. 非常不错的MySQL优化的8条经验
  6. 通过enum实现枚举类
  7. 【转】利用python的KMeans和PCA包实现聚类算法
  8. 婆媳关系不好首先就有一个斤斤计较的婆婆
  9. jQuery事件命名空间多事件绑定自定义事件js 命名空间 javascript命名空间
  10. 三菱plc编程软件gx-developer在win10中无法使用及工程无法建立解决方法
  11. 宝峰对讲机16频率表_宝峰888S对讲机的16个信道频率是多少?
  12. godaddy无法修改域名服务器,GoDaddy域名修改DNS设置方法
  13. QProgressDialog setValue过快导致死机问题记录
  14. Charles 模拟慢网络
  15. linux中man 2与man 3区别
  16. Real-Time Rendering Chapter 1~6 读书笔记
  17. python日本 老龄化分析_即将读研,求问前辈有什么研究生安利的软件 APP 或者阅读文献用的等一系列提高效率的东西吗!?...
  18. 单片机定时器实现的数字时钟
  19. easyui-textbox
  20. 羲云社区团购微信小程序 活动详细页 (界面及功能设计)

热门文章

  1. CRM源码下载PHP­|客户关系管理搭建
  2. 算法笔记:时间复杂度、空间复杂度 进制转化 秦九韶算法
  3. 快速傅里叶变换功率谱密度matlab_[转载]Matlab实例:频谱、功率谱和功率谱密度计算...
  4. 一步步带你做vue后台管理框架(二)——上手使用 系列教程《一步步带你做vue后台管理框架》第二课
  5. 计算机二级考试软件 免费
  6. Java实现智能语音朗读(完整代码+EXE程序制作)
  7. Ffmpeg快速命令使用 Ffmpeg选项详解 Ffmepg格式详解 常见视频文件格式详解
  8. 微信小程序 五 下拉刷新
  9. Nwafu-OJ-1411 Problem J C语言实习题二——5.按从大到小排序三个数
  10. 设计多选按钮ListChooseView