码迷,mamicode.com
首页 > 其他好文 > 详细

node -- 使用UEditor富文本编辑器

时间:2016-08-17 18:13:32      阅读:233      评论:0      收藏:0      [点我收藏+]

标签:

最近在做一个微信素材编辑器的小项目,使用到了UEditor编辑器,使用中出现了许多问题。

1.介绍

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

2.下载

选择开发版 ,因为我们使用node ,所以随便下一个版本,这里下载1.4.3.3 jsp 版本
下载完成解压。

3.创建项目

使用express生成器生成一个项目,并安装好依赖模块

$express ue-test -ejs
$cd ue-test && npm install 

把刚刚压缩好的文件重命名为ueditor 放入ue-test/pubilc 中

修改index.ejs页面:
<!DOCTYPE html>
<html>
  <head>
    <title><%= title %></title> 
    <meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
    <script type="text/javascript" charset="utf-8" src="../ueditor/ueditor.config.js"></script>
    <script type="text/javascript" charset="utf-8" src="../ueditor/ueditor.all.min.js"> </script>
    <!--建议手动加在语言,避免在ie下有时因为加载语言失败导致编辑器加载失败-->
    <!--这里加载的语言文件会覆盖你在配置项目里添加的语言类型,比如你在配置项目里配置的是英文,这里加载的中文,那最后就是中文-->
    <script type="text/javascript" charset="utf-8" src="../ueditor/lang/zh-cn/zh-cn.js"></script>
  </head>
  <body>
     <script id="editor" type="text/plain" style="width:1024px;height:500px;"></script>
  </body>


<script type="text/javascript">

    //实例化编辑器
    //建议使用工厂方法getEditor创建和引用编辑器实例,如果在某个闭包下引用该编辑器,直接调用UE.getEditor('editor')就能拿到相关的实例
    var ue = UE.getEditor('editor');

</script>
</html>

然后启动项目,编辑器初始化成功!(注意引入文件路径的问题,如果初始化失败可以f12查看报错进行调试)

我们这里为什么要这样引入路径 可以看这里 (API

技术分享

4.后端配置

仅仅这样是不能进行上传的
我们需要要配置后端文件。
我们复制jsp文件夹中的 config.json 丢入项目根目录也就是 ue-test/ 下
修改 ueditor.config.js 文件
//找到这一行代码 修改成这样,这里的url为请求的路径
// 服务器统一请求接口路径
        ,serverUrl: URL + "ue"

接下来我们安装ueditor 模块
$npm install ueditor --save

ueditor模块有一个示例,照着修改就好了

修改app.js:
//加载ueditor 模块
var ueditor = require("ueditor");

//使用模块
app.use("/ueditor/ue", ueditor(path.join(__dirname, 'public'), function (req, res, next) {
    // ueditor 客户发起上传图片请求
    if (req.query.action === 'uploadimage') {
        var foo = req.ueditor;

        var imgname = req.ueditor.filename;

        var img_url = '/images/ueditor/';
        res.ue_up(img_url); //你只要输入要保存的地址 。保存操作交给ueditor来做
        res.setHeader('Content-Type', 'text/html');//IE8下载需要设置返回头尾text/html 不然json返回文件会被直接下载打开
    }
    //  客户端发起图片列表请求
    else if (req.query.action === 'listimage') {
        var dir_url = '/images/ueditor/';
        res.ue_list(dir_url); // 客户端会列出 dir_url 目录下的所有图片
    }
    // 客户端发起其它请求
    else {
        // console.log('config.json')
        res.setHeader('Content-Type', 'application/json');
        res.redirect('/ueditor/jsp/config.json');
    }
}));

修改完成重启一下服务就好了,
技术分享
技术分享
技术分享

5.其他配置

自动保存

//启用自动保存
        ,enableAutoSave: true
        //自动保存间隔时间, 单位ms
        ,saveInterval: 500
发现这样启用自动保存没有成功,不知道为什么。
另一个方法是在实例编辑器之后调用
    //实例化编辑器
    //建议使用工厂方法getEditor创建和引用编辑器实例,如果在某个闭包下引用该编辑器,直接调用UE.getEditor('editor')就能拿到相关的实例
    var ue = UE.getEditor('editor');

    //注意一定要延时。要等这玩意载入成功。
    setTimeout(function () {
        ue.execCommand('drafts');
    }, 500); 
自动保存成功!!




node -- 使用UEditor富文本编辑器

标签:

原文地址:http://blog.csdn.net/a1104258464/article/details/52231737

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!