在工作中我们有一个弹出对话框系统,我想用它来编辑CKEditor中小部件的内容。有没有办法解决这个问题?
CKEditor是否有办法在外面调用并在Widget上获取回调设置值?
我用谷歌搜索了一段时间但没有成功:(
答案 0 :(得分:2)
正在编辑窗口小部件时(在初始化时,在双击时,在输入时以及调用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
方法的文档,该方法将允许您处理小部件创建。