需求
在显示弹窗之后, 加载UE富文本框, 并设置初始内容.
问题
在弹窗显示之后, 发生报错, 如下
分析
这里发现在调用 UE富文本的 setUEContent方法时, 提示该方法是未定义的.
其实就是因为, 在显示弹窗的时候, UEditor要加载js等相关文件, 需要一点时间, 就在此时, 文件尚未加载完的时候, 就开始调用setUEContent方法, 导致了此次报错.
setUEContent方法 就是UEditor的原生setContent, 这里被封装过, 不影响原生, 功能也一样.
解决方案
对UEditor元素进行监听, 当UEditor元素存在时, 再进行setUEContent即可.
这里监听使用的JS原生技术 MutationObserver, 这里不做详细阐述.
案例代码如下:
new MutationObserve() 创建监听器
MutationObserve对象.observe() 开始监听, 需要提供监听的元素以及配置
MutationObserve对象.disconnect() 销毁监听器