wangeditor-team / wangEditor

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

table 无法被clear #5675

Open zhangjindong opened 1 year ago

zhangjindong commented 1 year ago

bug 描述

正文 <table style="width: 100%;"><tbody><tr><p><br></p></tr></tbody></table><p><br></p>

因table无法被Clear,HTML在切换的时候,table会被遗留下来。

你预期的样子是?

调用 editor.clear() 后 返回 <p><br></p>

系统和浏览器及版本号

wangEditor 版本

V5

demo 能否复现该 bug ?

最小成本的复现步骤

image
dooonabe commented 11 months ago

确实,windows10 chrome/edge 下也是这样的情况,用的最新版本的js

luoyu-233 commented 11 months ago

期待可以得到清空,现在也发现了一个新的问题,当onCHange返回为这个信息的时候



这个时候 重新给它setHtml表格不会生效

rsl140 commented 10 months ago

可以参考下:


// vue2
import { SlateTransforms } from '@wangeditor/editor'

methods: {
  onCreated (editor) {
    this.editor = Object.seal(editor) // 一定要用 Object.seal() ,否则会报错
    this.slateTransforms = SlateTransforms
  },
  resetHtml () {
    // 使用原生slate.js删除内容
    this.editor.children.map(item => {
      this.slateTransforms.delete(editor, { at: [0] })
    })

    // reset init
    this.editor.children = [
      {
        type: 'p',
        children: [{ text: '' }]
      }]
  }
}
zhangfangbiao commented 7 months ago

可以参考下:

// vue2
import { SlateTransforms } from '@wangeditor/editor'

methods: {
  onCreated (editor) {
    this.editor = Object.seal(editor) // 一定要用 Object.seal() ,否则会报错
    this.slateTransforms = SlateTransforms
  },
  resetHtml () {
    // 使用原生slate.js删除内容
    this.editor.children.map(item => {
      this.slateTransforms.delete(editor, { at: [0] })
    })

    // reset init
    this.editor.children = [
      {
        type: 'p',
        children: [{ text: '' }]
      }]
  }
}

上述方法

this.editor.children = [
{
type: 'p',
children: [{ text: '' }]
}
]

会导致编辑器空白(placeholder也消失了),执行getHtml()方法得到的字符串为<div></div>,后来改为type: 'paragraph'正常

Bubble2 commented 2 months ago

可以参考下:

// vue2
import { SlateTransforms } from '@wangeditor/editor'

methods: {
  onCreated (editor) {
    this.editor = Object.seal(editor) // 一定要用 Object.seal() ,否则会报错
    this.slateTransforms = SlateTransforms
  },
  resetHtml () {
    // 使用原生slate.js删除内容
    this.editor.children.map(item => {
      this.slateTransforms.delete(editor, { at: [0] })
    })

    // reset init
    this.editor.children = [
      {
        type: 'p',
        children: [{ text: '' }]
      }]
  }
}

清空了需要重新赋值后还是有问题,有办法不老哥