quill 富文本插入自定义html代码

  1. 使用blot来进行,在new Quill()前先定义自定义的内容,并且注册成为quill的自定义菜单
// 尝试加入自定义blot
      const BlockEmbed = Quill.import('blots/block/embed');
      class AppPanelEmbed extends BlockEmbed {
        static  create(value:any) {
          const node = super.create(value);
          node.setAttribute('contenteditable','false');
          node.setAttribute('width','100%');
          // 设置自定义html
          node.innerHTML = this.transformValue(value);
          return node;
        }

        static transformValue(value:any) {
          let handleArr = value.split('\n');
          handleArr = handleArr.map( (e:any) => {return e.replace(/^[\s]+/, '').replace(/[\s]+$/, '')});
          return handleArr.join('')
        }

        // 返回节点自身的value值
        static value(node:any) {
          return node.innerHTML;
        }
      }
      // blotName
      AppPanelEmbed.blotName = 'AppPanelEmbed';
      // class名将用于匹配blot名称
      AppPanelEmbed.className = 'embed-innerApp';
      // 标签类型自定义
      AppPanelEmbed.tagName = 'div';
      Quill.register(AppPanelEmbed, true);

      // 完毕
  1. 在合适的位置调用转换方法就可以将html代码转换成quill的数据格式了
quill.insertEmbed(quill.getSelection().index || 0, 'AppPanelEmbed', 'html代码块');
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值