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: ''
        })
    },

要在vue-quill-editor副文本编辑器自定义工具栏内添加多个自定义按钮,你可以按照以下步骤进行操作: 1. 首先,将vue-quill-editor引入到项目中。可以使用以下代码: ```javascript import { quillEditor } from 'vue-quill-editor' ``` 2. 在组件中设置编辑器的相关数据和选项。可以使用以下代码: ```javascript export default { data() { return { content: null, editorOption: { modules: { toolbar: [ ['bold', 'italic', 'underline', 'strike'], // 默认按钮 ['blockquote', 'code-block'], // 默认按钮 ['custom_button_1', 'custom_button_2'] // 自定义按钮 ] } } } }, methods: { onEditorBlur() { // 失去焦点事件 }, onEditorFocus() { // 获得焦点事件 }, onEditorChange() { // 内容改变事件 } } } ``` 3. 在toolbar中添加自定义按钮。在`toolbar`数组中添加一个新的数组,该数组包含你想要添加的自定义按钮的标识符。例如,你可以添加`custom_button_1`和`custom_button_2`两个自定义按钮。 4.编辑器的模板中使用`quill-editor`组件,将之前设置的`content`、`editorOption`和相关事件绑定到相应的属性上。可以使用以下代码: ```html <template> <quill-editor v-model="content" ref="myQuillEditor" :options="editorOption" @blur="onEditorBlur($event)" @focus="onEditorFocus($event)" @change="onEditorChange($event)"></quill-editor> </template> ``` 通过以上步骤,你就可以在vue-quill-editor副文本编辑器自定义工具栏中添加多个自定义按钮了。请注意,在`toolbar`数组中的每个子数组都代表一行按钮,你可以根据需要添加更多的按钮,按照自己的需求进行自定义
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值