Vue项目中使用ueditor问题

1 篇文章 0 订阅
1 篇文章 0 订阅

No.1问题:Vue项目中使用uedior的时候总是报错Cannot read property 'offsetWidth' of null.

解决:

一、出现这个问题首先应该想到:offsetWidth这个属性的主体是谁?报错地方在哪里

使用

// 此处的ID是我的UEditor对应的容器ID
console.log(document.querySelector("#contentEditor")) // null

二、经过上述的打印判断到了当前所对应的元素的内容位Null,表明当前元素并没有被创建

上一步的日志,在vue生命周期中的mounted中,为什么没有打印出值呢?因为当前元素在mounted中只是创建了一次,对应的DOM更新,需要再调用一次updated钩子。

所以最简单的办法就是在mounted的方法中加上一句

this.$nextTick(()=>{
    console.log(document.querySelector("#contentEditor"));
})

// <div id="contentEditor" style="width:400px;height:300px;"></div>

可以看到当前DOM已经渲染,在此可以创建editor实例;

// 确保当前语句在执行之前已经引入了ueditor的包

/**
   * 此处是我在的ueditor
   * import "../../../public/lib/ueditor/ueditor.config.js";
   * import "../../../public/lib/ueditor/ueditor.all.js";
   * import "../../../public/lib/ueditor/lang/zh/zh-cn.js";
*/


this.editor = UE.getEditor("contentEditor")  // this.editor是我在data中定义的一个变量,用于接收富文本实例,以便于再其他地方使用editor的API

至此以后就可以使用了。

No.2问题:在切换路由之后发现ueditor不显示了?

解决:

在组件或者任何路由切换的时候,销毁富文本实例。

UE.delEditor("contentEditor")

之前在网上看到过另一个方法就是:UE.getEditor("contentEditor").destory() ,  不过我没试过这个方法~

  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值