Chrome HTML document.execCommand('inserthtml' 插入到下表单

Chrome HTML document.execCommand('inserthtml' inserts into following table cell

本文关键字:插入 表单 inserthtml HTML document Chrome execCommand      更新时间:2023-09-26

我正在使用ckEditor,正在研究片段/文本替换功能。 我有纯文本字符串或 HTML 字符串(例如段落元素)的代码片段。 我正在使用document.execCommand('inserthtml',false,html)来执行内容插入,并且在大多数情况下都可以正常工作。

但是,当我尝试使用此方法将内容插入表格单元格时,内容会在光标所在的单元格之后的单元格中结束,如果光标位于最后一个单元格中,则内容会在表外结束。

我的搜索没有找到太多关于这种情况的信息,我真的不明白为什么Chrome会这样做。 这是预期行为吗?有没有更好的方法来插入任意 html,保持光标位置?

这似乎是一个 WebKit 错误。您可以通过使用"InsertHTML"命令的自定义替换来解决此问题。下面的演示使用我对相关问题的回答中的函数,保留插入符号位置并在 IE <9 中工作(与"InsertHTML"命令不同,它没有)。

http://jsfiddle.net/timdown/7SZjm/2/

使用 CKEditor API 我在 API 演示中没有看到这样的问题

使用 Chrome,我插入了一个表格,然后我使用了插入 HTML 按钮,它工作正常。