vue mavon-editor编辑器自定义工具栏并插入自定义代码

需求:

在编辑器编辑文本的时候需要首行两个字符缩进但是空格在md上不能识别需要特定的代码才可以,而客户不懂这些需要在工具栏做一个按钮来快捷生成代码。

难点:

这个功能的难点就是如何找到光标的位置进行插入代码,官方文档上面找不到相关的案列只有自定义工具栏的列子。

过程:

在找寻解决方案的试过找到textarea的class然后获取光标的当前位置,这样做确实能做出来但是有个致命问题就是不能连续的点击添加,点了一次之后光标的位置就移动到开头,这样体验很不友好,然后我试着找文档上也没有提供的获取光标位置的api,最后在别人的开源项目上面找到了解决方案。

官方文档地址:https://github.com/hinesboy/mavonEditor

代码:

<mavon-editor
  ref="md"
  v-model="form.contentMd"
>
  <template slot="left-toolbar-before">
    <button
      type="button"
      @click="addCode('&nbsp;')"
      class="el-icon-coordinate"
      aria-hidden="true"
      title="空格"
    ></button>
  </template>
</mavon-editor
addCode(content) {
      const editor = this.$refs.md
      //获取光标位置
      editor.insertText(editor.getTextareaDom(),
        {
          prefix: `${content}`,
          subfix: '',
          str: ''
        })
    },

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值