vue项目使用umeditor报错Ueditor Cannot set property 'innerHTML' of undefined

网上有很多关于vue项目结合百度富文本使用的例子,比如这篇:https://www.cnblogs.com/dmcl/p/7152711.html

获取编辑器内容方法:

 methods: {
      getUEContent() { // 获取内容方法
        return this.editor.getContent()
      }
    },

因为我还加了watch,旨在页面从加载um(或者ue是基本一样的)开始,实时获取、设置富文本内容:

watch: {
      content: function (newMsg, oldMsg) {
        this.setUMContent(newMsg);
      },
      readonly: function (newMsg, oldMsg) {
        this.toggleDisabled(newMsg);//设置UM是否可编辑
      }
    },

然后就报错了:Ueditor Cannot set property 'innerHTML' of undefined。

原因:在执行setContent()函数的时候,Umeditor还没有初始化好,所以需要等Umeditor初始化好后再调用setContent()函数,用到um.ready(),我的更改为如下就ok了,仅供参考:

     getUMContent() { // 获取内容方法
        let self = this, html = '';
        this.editor.ready(function () {
          html = self.editor.getContent();
        })
        return html;
      },
      setUMContent(msg) {
        let self = this, setResult = null;
        this.editor.ready(function () {
          setResult = self.editor.setContent(msg);
        });
        return setResult;
      },
      toggleDisabled(val){
        let self = this;

        if(this.editor){
          this.editor.ready(function () {
            if(val){
              self.editor.setDisabled('fullscreen');// 设置UE不可编辑
            }else{
              self.editor.setEnabled();
            }
          })
        }
      }
参考文献:https://blog.csdn.net/wangyibo5843/article/details/53397520


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值