VueHtml5Editor的使用

4 篇文章 0 订阅
  <vue-html5-editor
    style="z-index: 0"
    :content.sync="content"
    :height="300"
    :autoHeight="false"
    @change="updateData"
  />
 updateData(e = "") {
   let c1 = e.replace(/<img width="100%"/g, "<img");
   let c2 = c1.replace(/<img/g, '<img width="100%"');
   this.content = c2;
 },
// 公共组件
import Vue from 'vue'
import VueHtml5Editor from 'vue-html5-editor'
export default function () {
  let opt = {
    // 全局组件名称,使用new VueHtml5Editor(options)时该选项无效
    name: "vue-html5-editor",
    // 是否显示模块名称,开启的话会在工具栏的图标后台直接显示名称
    showModuleName: true,
    // 自定义各个图标的class,默认使用的是font-awesome提供的图标
    icons: {
      text: "fa fa-pencil",
      color: "fa fa-paint-brush",
      font: "fa fa-font",
      align: "fa fa-align-justify",
      list: "fa fa-list",
      link: "fa fa-chain",
      unlink: "fa fa-chain-broken",
      tabulation: "fa fa-table",
      image: "fa fa-file-image-o",
      hr: "fa fa-minus",
      eraser: "fa fa-eraser",
      undo: "fa-undo fa",
      "full-screen": "fa fa-arrows-alt",
      info: "fa fa-info",
    },
    // 配置图片模块
    image: {
      // 文件最大体积,单位字节  
      sizeLimit: 512 * 1024 * 10,
      // 上传参数,默认把图片转为base64而不上传
      // upload config,default null and convert image to base64
      upload: {
        // url: null,
        url: 'http://10.135.16.116:9080/zhengzhou/focCommonController.do?focUploadImage&uploadPath=article',
        headers: {},
        params: {},
        fieldName: 'upload'  // 上传文件的字段
      },
      // 压缩参数,默认使用localResizeIMG进行压缩,设置为null禁止压缩
      // width和height是文件的最大宽高
      compress: {
        width: 200,
        height: 200,
        quality: 80
      },
      // 响应数据处理,最终返回图片链接
      uploadHandler(responseText) {
        //default accept json data like  {ok:false,msg:"unexpected"} or {ok:true,data:"image url"}
        var json = JSON.parse(responseText);
        console.info(json);
        if (!json.success) {
          // alert(json.msg)
          this.$toast('上传失败');
        } else {
          return json.result  // 返回的是从后端得来的数据
        }
      }
    },
    // 语言,内建的有英文(en-us)和中文(zh-cn)
    language: "zh-cn",
    // 自定义语言
    i18n: {
      "zh-cn": {
        "align": "对齐方式",
        "image": "图片",
        "list": "列表",
        "link": "链接",
        "unlink": "去除链接",
        "table": "表格",
        "font": "文字",
        "full screen": "全屏",
        "text": "排版",
        "eraser": "格式清除",
        "info": "关于",
        "color": "颜色",
        "please enter a url": "请输入地址",
        "create link": "创建链接",
        "bold": "加粗",
        "italic": "倾斜",
        "underline": "下划线",
        "strike through": "删除线",
        "subscript": "上标",
        "superscript": "下标",
        "heading": "标题",
        "font name": "字体",
        "font size": "文字大小",
        "left justify": "左对齐",
        "center justify": "居中",
        "right justify": "右对齐",
        "ordered list": "有序列表",
        "unordered list": "无序列表",
        "fore color": "前景色",
        "background color": "背景色",
        "row count": "行数",
        "column count": "列数",
        "save": "确定",
        "upload": "上传",
        "progress": "进度",
        "unknown": "未知",
        "please wait": "请稍等",
        "error": "错误",
        "abort": "中断",
        "reset": "重置",
        "emoji": "emoji"
      }
    },
    // 隐藏不想要显示出来的模块
    hiddenModules: [],
    // 自定义要显示的模块,并控制顺序
    visibleModules: [
      "text",
      "color",
      "font",
      "align",
      // "list",
      // "link",
      // "unlink",
      // "tabulation",
      "image",
      "hr",
      "eraser",
      // "undo",
      "full-screen",
      // "info",
      "emoji"
    ],
    // 扩展模块,具体可以参考examples或查看源码
    // extended modules
    modules: [
      //omit,reference to source code of build-in modules
      {
        //custom module with dashboard.html
        name: "emoji",
        icon: "fa fa-smile-o",
        i18n: "emoji",
        show: true,
        init: function (editor) {
          console.log("emoji module init")
        },
        //vue component
        dashboard: {
          template: ` <div>
          <span v-for="(s,index) in brow" :key="index" @click="insertSymbol(s)" v-html="s.value"></span>
      </div>`,
          mixins: [emojiIcons],
          data: function () {
            return {
              symbols: [
                ">_<|||",
                "^_^;",
                "⊙﹏⊙‖∣°",
                "^_^|||",
                "^_^\"",
                "→_→",
                "..@_@|||||..",
                "…(⊙_⊙;)…",
                "o_o ....",
                "O__O",
                "///^_^.......",
                "?o?|||",
                "( ^_^ )? ",
                "(+_+)?",
                "(?ε?)? ",
                "o_O???",
                "@_@a",
                "一 一+",
                ">\"<||||",
                "‘(*>﹏<*)′"
              ]
            }
          },
          methods: {
            insertSymbol: function (symbol) {
              //$parent is editor component instance
              this.$parent.execCommand("insertHTML", symbol.key)
            }
          }
        }
      }
    ],
  };
  Vue.use(VueHtml5Editor, opt);
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
VueHTML5Editor 是一个基于 Vue.js 的富文本编辑器组件。它使用了 HTML5 的 contenteditable 属性来实现编辑功能。它具有以下特点: 1. 简单易用:VueHTML5Editor 提供了一个简单的 API,使其易于在 Vue.js 项目中集成和使用。只需在代码中引入组件并进行配置,即可在页面上实现富文本编辑功能。 2. 功能丰富:VueHTML5Editor 支持常见的富文本编辑功能,如文本样式(如加粗、斜体、下划线等)、字体选择、字号选择、颜色选择、插入图片、插入表格、插入链接等。同时,它还支持对编辑内容进行撤销、重做、全屏等操作。 3. 自定义性强:VueHTML5Editor 允许用户通过自定义配置项来调整编辑器的样式和功能,满足不同项目的需求。用户可以自定义编辑器工具栏的按钮、面板的位置等。此外,开发者还可以通过扩展插件来添加更多的功能。 4. 兼容性好:由于 VueHTML5Editor 使用了 HTML5 的 contenteditable 属性,它在主流的现代浏览器上具有良好的兼容性。无论是在 Chrome、Firefox、Safari 还是在移动端的浏览器中,都能够正常运行和显示。 总之,VueHTML5Editor 是一个功能强大、易于使用且具有良好兼容性的富文本编辑器,适用于需要在 Vue.js 项目中添加富文本编辑功能的场景。无论是开发个人博客、电子商务网站还是企业管理系统,VueHTML5Editor 都能够满足不同项目的需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

好苦呀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值