wangeditor-team / wangEditor

wangEditor —— 开源 Web 富文本编辑器
http://www.wangeditor.com/
MIT License
17.37k stars 3.31k forks source link

插入图片后,再次打开编辑报错Cannot find a descendant at path [0,2] in node:,再次打开才正常 #5855

Open 987900544yyf opened 4 months ago

987900544yyf commented 4 months ago

插入图片后,再次打开编辑报错Cannot find a descendant at path [0,2] in node:,再次打开才正常, 文字就没事,插入图片视频编辑后再打开就报错

wangEditor 版本

wangEditor5 + v2

是否查阅了文档 ?

(文档链接 www.wangeditor.com

最小成本的复现步骤

(vue.runtime.esm.js:3065 Error: Cannot find a descendant at path [0,2] in node: {"children":[{"type":"paragraph","children":[{"text":""}]}],"operations":[{"type":"set_selection","properties":null,"newProperties":{"anchor":{"path":[0,2],"offset":3},"focus":{"path":[0,2],"offset":3}}}],"selection":{"anchor":{"path":[0,2],"offset":3},"focus":{"path":[0,2],"offset":3}},"marks":null,"id":"wangEditor-1","isDestroyed":false,"isFullScreen":false,"history":{"undos":[[{"type":"set_selection","properties":{"anchor":{"path":[0,0],"offset":0},"focus":{"path":[0,0],"offset":0}},"newProperties":{"anchor":{"path":[0,2],"offset":2},"focus":{"path":[0,2],"offset":2}}}],[{"type":"insert_text","path":[0,2],"offset":2,"text":"2"}],[{"type":"remove_text","path":[0,0],"offset":0,"text":"1111111111 asd asd as d "},{"type":"remove_node","path":[0,1],"node":{"type":"image","src":"http://jd22bjxt.oss-cn-shenzhen.aliyuncs.come97a1884dc39f5609c665617036.jpg","alt":"","href":"","style":{"width":"","height":""},"children":[{"text":""}]}},{"type":"remove_text","path":[0,1],"offset":0,"text":"112"},)

bbhxwl commented 3 months ago

我也刚出现这个问题。

fanzhongke commented 3 months ago

我的是本地运行正常,但是部署到测试环境后,编辑就会出现这种问题。还有不能删除,配置栏有时禁用有时可用 image

cycleccc commented 3 months ago

能录个视频看看吗,没复现,window的话win+G很方便就能录个视频

bbhxwl commented 3 months ago

我的是本地运行正常,但是部署到测试环境后,编辑就会出现这种问题。还有不能删除,配置栏有时禁用有时可用 image

放弃吧,我都2年,2次想用,2次都放弃了,群里都说这个富文本bug最多。

lzn970721 commented 3 months ago

你是不是放在弹窗里了 弹窗关闭的时候销毁就好了

Ocean-ZH commented 3 months ago

试试在插入新数据之前调用一下 clear() 方法

yanwuweixu commented 2 months ago

你这个问题基本是在弹窗编辑(如果主页面不存在esc键退出)并且鼠标在富文本里面直接esc退出出现的,不是插入图片后出现

yanwuweixu commented 2 months ago

监听下esc事件然后清楚下就行

ChrisNi888 commented 1 month ago

我也是这个问题,保存了正在编辑的草稿,然后退出后再进去。没有插入图片的情况下是正常的,插入图片后再进去就报这个错。

RockyZhous commented 1 month ago

我是在一个页面添加了三个富文本编辑器。然后在每次onblur时保存文本,然后操作页面有数据切换,就是类似刷新或者加载另一个数据。 目前发现就是在编辑器中保存了图片(以BASE64嵌入式插入)后,再进行数据切换。这时这个插入过图片的编辑器节点就会报这样的错误。而CTRL+R刷新页面重新空白以后的加载是正常的。数据也正常保存到了数据库后台。 感觉是在有变动以后,组件本身保存了上一次的内容,而在加载新数据时,我显式的把节点数据都清除了,但没有生效。并且我也是设置了延时再处理赋值,都会报错。如果上次编辑的内容是普通文本,不包含图片,则不会触发这个报错。

我最后想了个非常规的办法把问题暂时解决了。 我把三个富文本编辑器本身打包在一个组件中,在页面中给这个组件加了个key,然后在加载新数据事件中,刷新key,导致这个组件强制刷新,然后原来富文本加载数据是通过eventBus(mitt.js),然后我在发送eventBus时加个延时,等组件强制刷新后再重新load数据,这样似乎就暂时解决了这个问题。

ChrisNi888 commented 1 month ago

我发现只要切换到别的页面时,销毁当前的编辑器组件就行了。比如我用一个ref变量控制页面切换,那么在编辑器上v-if=(变量==xx),这样这个变量一变化,页面切换,编辑器组件被销毁,再进去就没这个错误了。