vue+富文本编辑器wangEditor4的使用

2021-12-29  本文已影响0人  alicemum

1. wangEditor4介绍

wangEditor4 —— 轻量级 web 富文本编辑器,配置方便,使用简单。支持 IE10+ 浏览器。

2. 下载

注意: wangeditor都是小写字母

npm install wangeditor

3. 定义编辑器子组件

4. 图片上传注意事项

4.1 响应数据格式要求

只有响应数据的格式符合下列要求,才会调用success和fail等回调函数

{
    // errno 即错误代码,0 表示没有错误。
    //       如果有错误,errno != 0,可通过下文中的监听函数 fail 拿到该错误码进行自定义处理
    "errno": 0,

    // data 是一个数组,返回图片Object,Object中包含需要包含url、alt和href三个属性,它们分别代表图片地址、图片文字说明和跳转链接,alt和href属性是可选的,可以不设置或设置为空字符串,需要注意的是url是一定要填的。
    "data": [
        {
            url: "图片地址",
            alt: "图片文字说明",
            href: "跳转链接"
        },
        {
            url: "图片地址1",
            alt: "图片文字说明1",
            href: "跳转链接1"
        },
        "……"
    ]
}
//上传图片过程中钩子函数
      this.editor.config.uploadImgHooks = {
        // 上传图片之前
        before: function (xhr) {
          // console.log(xhr);

          // // 可阻止图片上传
          // return {
          //   prevent: true,
          //   msg: "需要提示给用户的错误信息",
          // };
        },
        // 图片上传并返回了结果,图片插入已成功
        success: function (xhr) {
          console.log("success", xhr);
        },
        // 图片上传并返回了结果,但图片插入时出错了
        fail: function (xhr, editor, resData) {
          console.log("fail", resData);
        },
        // 上传图片出错,一般为 http 请求的错误
        error: function (xhr, editor, resData) {
          console.log("error", xhr, resData);
        },
        // 上传图片超时
        timeout: function (xhr) {
          console.log("timeout");
        },
      };

4.2 响应数据不符合格式要求

customInsert: function (insertImgFn, result) {
    //result为上传图片成功的时候返回的数据,这里我打印了一下发现后台返回的是data:[{url:"路径的形式"},...]
    // console.log(result.data[0].url)
    //insertImgFn()为插入图片的函数
    //循环插入图片
    // for (let i = 0; i < 1; i++) {
    // console.log(result)
    let url = "http://localhost:3000/upload/" + result.url;
    insertImgFn(url);
}

5. 其它API

6. 父组件使用富文本编辑器子组件

<template>
  <div id="app">
    <editor @change="change"></editor>
    <button @click="send()">提交</button>
  </div>
</template>

<script>
import editor from "@/views/editor.vue";
export default {
  components: { editor },
  data(){
    return {
      result: ''
    }
  },
  methods: {
    //提交富文本编辑器的内容
    send(){
      console.log('send',this.result);
    },
    change(html){
      this.result = html
    }
  }
  
};
</script>

<style lang="scss">
</style>
上一篇 下一篇

猜你喜欢

热点阅读