在工作中,我们有一个弹出对话框系统,我想用它来在CKEditor中编辑小部件的内容。有什么办法吗?

CKEditor是否可以在外部调用并在Widget上获取回调设置值?

我已经用谷歌搜索了很长时间,但没有成功:(

最佳答案

编辑窗口小部件时(初始化,双击,进入以及调用widget.edit()方法时),将触发widget#edit事件。 widget.edit方法中的代码开头如下所示:

edit: function() {
    var evtData = { dialog: this.dialog };

    // Edit event was blocked or there's no dialog to be automatically opened.
    if ( this.fire( 'edit', evtData ) === false || !evtData.dialog )
        return false;

    ...
}


这意味着,如果事件被取消或widget.definition中没有设置对话框名称(我想是您的情况),那么在事件被触发后将不会发生任何事情。

因此,首先,请监听widget#edit事件并显示您的对话框。然后,当用户按下“确定”按钮时,使用widget.setData()。您还需要在进行任何更改之前和之后触发editor#saveSnapshot事件。

另外,请阅读widget.repository#finalizeCreation方法的文档,该文档可让您处理小部件的创建。

08-03 12:06
查看更多