CKEditor在拖放时销毁小部件

时间:2016-02-05 13:31:48

标签: ckeditor

我正在使用CKEditor的小部件功能来创建我自己的小部件,其中包含一个jquery组件。但是,当拖放窗口小部件时,它会被销毁,并且jquery组件中的所有状态都会丢失。 可以避免这种行为吗?它是可配置的吗?为什么需要(也许CKEditor团队可以回答这个问题)?

1 个答案:

答案 0 :(得分:8)

在拖放过程中,小部件被破坏(并重新初始化),这种行为无法避免。

如何将jQuery组件与widget对象链接?您的小部件定义是什么样的? (这是您传递editor.widgets.add()电话的对象)。您是否使用Widget.setData() /如何将此jQuery组件设置为窗口小部件数据?

如果你很难回答这些问题,你可以在这里粘贴你的widget实例的源代码(打开浏览器的开发人员工具并查找具有data-cke-widget-id属性的元素 - 不要混淆CKEditor中的源模式视图)。将其与整个内容粘贴。

小部件将其数据存储在data-cke-widget-data HTML属性中。一个盲目的猜测是你要么没有在窗口小部件上正确设置数据,要么在它被字符串化然后解析回来时,它不能正确处理jQuery对象。也许你可以使用widget.definition.init初始化你的jQuery组件并将数据保存为普通对象(Widget.setData)?

您可能还希望查看CKEditor widget documentation以获取更多信息。