wangEditor icon indicating copy to clipboard operation
wangEditor copied to clipboard

table 无法被clear

Open zhangjindong opened this issue 2 years ago • 5 comments
trafficstars

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>

系统和浏览器及版本号

  • macOS
  • Chrome

wangEditor 版本

V5

demo 能否复现该 bug ?

  • 中文 demo https://www.wangeditor.com/demo/

最小成本的复现步骤

image
  • clear()两次之后table依然存在

zhangjindong avatar Aug 29 '23 08:08 zhangjindong

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

dooonabe avatar Sep 13 '23 06:09 dooonabe

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



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

luoyu-233 avatar Sep 22 '23 05:09 luoyu-233

可以参考下:


// 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: '' }]
      }]
  }
}

rsl140 avatar Oct 23 '23 10:10 rsl140

可以参考下:

// 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'正常

zhangfangbiao avatar Jan 12 '24 02:01 zhangfangbiao

可以参考下:

// 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: '' }]
      }]
  }
}

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

Bubble2 avatar Jul 04 '24 01:07 Bubble2