网上可以使用的富文本编辑器有很多,但是经过慎(sui)重(shou)思(yi)考(cha),选择了UEditor,毕竟是百度的东西,质量上应该经得起推敲,另外,使用别人的插件,总要去适应别人的编码习惯,或者掉进别人的坑里。既然都是要绕坑甚至填坑,索性选择一个名头响亮的。

  天天吆喝富文本编辑器,究竟什么是富文本编辑器呢?答:富文本编辑器,Rich Text Editor, 简称 RTE, 是一种可内嵌于浏览器,所见即所得的文本编辑器。 它提供类似于 Microsoft Word 的编辑功能,方便不会编写 HTML 的用户也可以根据需求设置各种文本格式。(百度)

  UEditor是由百度web前端研发部开发所见即所得富文本web编辑器,具有轻量,可定制,注重用户体验等特点。主要还是开源免费,具体可以参考官网:http://ueditor.baidu.com/website/index.html

  使用很简单,直接把官网的代码拷过来

<!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>

另外:工具栏可以自己配置,除了修改配置文件,在实例化编辑器时也可以设置,代码如下:

<script type="text/javascript">
var ue = UE.getEditor('container',{toolbars: [
['fullscreen', 'source', 'undo', 'redo'],
['bold', 'italic', 'underline', 'fontborder', 'strikethrough', 'superscript', 'subscript', 'removeformat', 'formatmatch', 'autotypeset', 'blockquote', 'pasteplain', '|', 'forecolor', 'backcolor', 'insertorderedlist', 'insertunorderedlist', 'selectall', 'cleardoc']
]});
</script>

在使用过程中,不是看官网拷过来就可以,在实际项目框架和业务需求中,总会遇到一些问题,现在主要整理以下问题:

一、报错:(错误信息:Uncaught ReferenceError: ZeroClipboard is not defined ueditor.all.min.js:265)

经查看代码后发现 ueditor.../third-party/zeroclipboard/ZeroClipboard.js中 输出方法的地方是酱紫的

if (typeof define === "function" && define.amd) {
define(function() {
return ZeroClipboard;
});
} else if (typeof module === "object" && module && typeof module.exports === "object" && module.exports) {
module.exports = ZeroClipboard;
} else {
window.ZeroClipboard = ZeroClipboard;
}

意思就是说

如果当前页面的模块加载模式是AMD的 则定义模块

如果是CommonJs的,则输出到模块 ZeroClipboard

否则 把 ZeroClipboard 定义为全局变量

这样 解决方案就有两种。

①不使用模块加载模式来使用这个功能

这样方法需要修改一点源码,把上面这段代码替换成如下代码即可

if (typeof define === "function" && define.amd) {
define(function() {
return ZeroClipboard;
});
} else if (typeof module === "object" && module && typeof module.exports === "object" && module.exports) {
module.exports = ZeroClipboard;
}
window.ZeroClipboard = ZeroClipboard;

②如果不修改源码,就得在模块加载时做处理了

首先是修改配置

require.config({
baseUrl: '',
paths: {
ZeroClipboard: "./UEditor.../ZeroClipboard"//主要是加这句话
}
});

然后是在调用这个模块并把模块定义到全局变量

require(['ZeroClipboard'], function (ZeroClipboard) {
window['ZeroClipboard'] = ZeroClipboard;
});

方案1,可以解决该错误;主要参考:传送门

二、编辑器第一次加载正常,第二次加载不出来

1、网上解决方法:

jQuery(function($) {
UE.getEditor('_editor').render('_editor')
)}

该方法测试,第二次能正常加载,但第一次加载会出现两个编辑器。

2、另一个方法:

jQuery(function($) {
UE.delEditor('_editor');
var ue = UE.getEditor('_editor');
)}

在执行delEditor函数时报错,源码中destroy中的某个参数未定义报错。

3、最终解决方案

if(typeof(UE.getEditor("editor")) !='undefined'){
UE.getEditor("editor").destroy(); }

每次在关闭窗口或者编辑完成后都要执行下这个函数,用于销毁该编辑器,保证下次加载正常。

三、弹出模态框中显示编辑器时,部分字体大小、样式等带有下拉框,弹出框的工具无法使用,原因是被挡在模态框的下面。

解决:将ueditor.config.js中的zIndex数字改大

  

四、去掉弹出框“保存文本成功”

  步骤1、在ueditor.config.js文件中,将enableAutoSave改为false,并将注释去掉。

    

  步骤2、然后在ueditor.all.js文件中找到‘contentchange’,函数第一行添加代码:if (!me.getOpt('enableAutoSave')) {return;}

    

【转载请注明出处】

UEditor问题整理的更多相关文章

  1. Java 中使用 UEditor 整理【待续。。。】

    1.简介 官网:http://ueditor.baidu.com/website/index.html 演示:http://ueditor.baidu.com/website/examples/ 2. ...

  2. Ueditor 增加模板

    简介: Ueditor 是百度出的开源富文本编辑器,非常符合国人习惯!模板功能很好用. 官网:http://ueditor.baidu.com/website/ 定义自己的模板: 先用Ueditor编 ...

  3. UEditor百度编辑器,工具栏上自定义添加一个普通按钮

    添加一个名叫“hougelou”的普通按钮在工具栏上: 第一步:找到ueditor.config.js文件中的toolbars数组,增加一个“hougelou”字符串,然后找到labelMap数组,对 ...

  4. UEditor上传图片到七牛云储存(java)

    我们的网站一般放在虚拟空间或者服务器上,图片如果存在本地目录,会占用很多空间和流量,还增加了负担,好的办法是把图片存放到云储存服务里面,平时用url去拿 云储存:普遍说又拍云和七牛比较好,看到七牛免费 ...

  5. UEditor上传图片到七牛云储存(c#)

    我们的网站一般放在虚拟空间或者服务器上,图片如果存在本地目录,会占用很多空间和流量,还增加了负担,好的办法是把图片存放到云储存服务里面,平时用url去拿 云储存:普遍说又拍云和七牛比较好,看到七牛免费 ...

  6. 每日学习心得:UEditor样式被过滤无法显示问题

    前言: 上周开发中有用到开源的富文本编辑器UEditor,在使用的过程中遇到了样式被过滤无法显示问题,经过一番折腾终解决,此外,还有一些关于获取前台界面元素的一些总结. 1. UEditor样式被过滤 ...

  7. Thinkphp整合最新Ueditor编辑器

    说到最新的富文本编辑器的确不少(ckeditor.fkeditor.ueditor),这些富文本编辑器如果单独使用基本上很方便,不需要做额外的配置,只要把官方的插件下载下来放到一个web容器中,看看 ...

  8. React入门资源整理

    另外,附上我搜集的一些比较实用的学习资料,建议先看这些撸起来,再看什么乱七八糟的awsome系列. React入门资源整理 React项目新手指南 http://www.w3ctech.com/top ...

  9. JSP版(utf8编码)的Ueditor百度文章编辑器配置以及使用说明

    二话不说,先上图: 我配置好的效果大致是这些功能:基本的文字编辑功能.图片上传功能.附件上传功能.百度/谷歌地图搜索截图.视/音频发布功能.这个插件是现今我用过觉得最舒服的编辑器,功能齐全强大,稍微修 ...

随机推荐

  1. Linux] Git: push 出错的解决 master -> master (branch is currently checked out)

      在使用Git Push代码到数据仓库时,提示如下错误: [remote rejected] master -> master (branch is currently checked out ...

  2. Python——气象数据分析

    将对意大利北部沿海地区的气象数据进行分析与可视化.我们在实验过程中先会运用 Python 中 matplotlib 库的对数据进行图表化处理,然后调用 scikit-learn 库当中的的 SVM 库 ...

  3. Win10用Windows照片查看程序(照片查看器)打开图片

    以上方法只能一个个添加,也有人说不好使,这里给出一个我写的批处理程序,反正我一直用着很好.   ::复制以下内容到记事本: @echo off&cd\&color 0a&cls ...

  4. 功能区按钮调用Excel、PowerPoint、Word中的VBA宏:RunMacro

    功能区按钮调用Excel.PowerPoint.Word中的VBA宏:RunMacro 众所周知,Excel.PPT.Word文档或加载宏文件中可以写很多过程和函数,调试的过程中当然可以按F8或F5直 ...

  5. PyTorch基础——预测共享单车的使用量

    预处理实验数据 读取数据 下载数据 网盘链接:https://pan.baidu.com/s/1n_FtZjAswWR9rfuI6GtDhA 提取码:y4fb #导入需要使用的库 import num ...

  6. Automatic Setup of a Humanoid

    The humanoid animation option in Unity 4 makes it possible to retarget the same animations to differ ...

  7. 关于guava实现线程池

    private ListeningExecutorService executorService = MoreExecutors.listeningDecorator(Executors.newCac ...

  8. LeetCode No.88,89,90

    No.88 Merge 合并两个有序数组 题目 给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组. 说明: 初始化 nums1 ...

  9. locate及find查找命令

    在文件系统上查找符合条件的文件:       实现工具:locate,find locate:       依赖于事先构建好的索引库:       系统自动实现(周期性任务):       手动更新数 ...

  10. 用@font-face应用自定义字体

    @font-face格式 @font-face { font-family: <YourWebFontName>; src: <source> [<format>] ...