wangEditor富文本编辑器为什么使用document.querySelectorAll获取元素后修改内容不生效?-灵析社区

momo

如题,第三方开发的系统,烂尾,然后前端显示富文本内容一直有个bug(不是第三方富文本编辑器的问题,是第三方开发后前台展示问题) 就是,后台显示正常的文章在前台显示不正常(例如,段落有缩进,到前端就不显示缩进,所以只能通过去除缩进,然后段落前手动敲空格进去)。 目前曲折的办法就想着写个扩展,手动去掉缩进,在文字前加空格,但是试了半天发现用`document.querySelectorAll()[].innerText、innerHTML` 修改内容后保存后都不生效...... * * * 2024.07.19新增 ![image.png](https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20240920/c67961bde0dd965b22863febc411c415.png)

阅读量:193

点赞量:0

问AI
我这两天也在写浏览器扩展,不同平台的富文本输入问题也琢磨了一下。 我去看了wangEditor官网实例,最新版是直接用的contenteditable,可以直接innerHTML编辑的。 V3之前可以使用textarea,改了值你要触发对应事件去渲染数据。 如果确认是使用的textarea,可以继续看下面。 输入框赋值的写法,直接dom.value = 'xx' 是没用的。 改为下面这个写法才行,你可以参考一下。重点要去触发事件 // 给输入框赋值 const inputValue = (dom, val) => { let evt = new InputEvent('input', { inputType: 'insertText', data: val, dataTransfer: null, isComposing: false, }); dom.value = val; dom.dispatchEvent(evt); }; dom就是个输入框对象,可以是文本域,用法一样。 隐藏的文本域,你需要赋值时触发事件,最好再触发一下focus事件。 问题根源就是:类似vue与react响应式,要去触发对应事件来更新数据。