我在内容编辑页面上有一个CKEditor实例。我正在寻找重用或重置CKEditor实例。
用例
我有一个表格,每个单元格都可以编辑。当用户单击一个单元格时,我会向他们展示提供编辑功能的CKEditor。
我正在使用CKEDITOR.instances.cellContent.setData( cellContent );
我正在使用var cellContent = CKEDITOR.instances.cellContent.getData();
这很有效,除了CKEditor在我调用setData()
之后仍然认为它有旧内容
有谁知道如何重置,重用或(有效)重新实例化CKEditor实例?
(谷歌没有帮我这个)
感谢您的思考!
更新1
我正在使用一个编辑器实例,它将被重复用于编辑每个表格单元格。 (在非活动时隐藏,通过在包含元素上设置display:none)
更新2
我正在使用firefox 13.0.1 for Mac。尽管Chrome上没有出现此颜色问题,但粗体/斜体按钮也会出现同样的问题。
答案 0 :(得分:2)
无法在新元素上重新实例化编辑器。一个实例必然会在其整个生命中编辑一个。
您还没有提到如何初始化编辑器。对于每个表格单元格,因为您希望在单元格中有编辑器?或者你在桌子外面有一个编辑器,你只想在那里加载点击的单元格内容并在模糊/更改等时更新它。
如果选择第一个选项,则必须为每个表格单元格创建编辑器实例。您不必在页面加载时执行此操作 - 最好在单击单击时执行此操作。当用户离开单元格时,您不必销毁(editor#destroy
)编辑器 - 最好隐藏它并在以后重复使用同一单元格。
如果您选择了第二个选项,那么setData/getData
应足以刷新编辑器的UI(按钮状态)。我现在检查了,这看起来像一个bug。幸运的是,在设置数据后调用editor#focus
可以很容易地修复它 - 然后更新UI(至少在我的快速测试中)。如果它不起作用,请延迟聚焦,因为我是从控制台手动测试的,所以它默认是延迟的。