我在ckeditor
中创建了一个对话框。
editor.ui.addButton('blublu',
{
label: 'blublu',
command: 'blublu',
icon: this.path + 'icons/blublu.png'
}
);
editor.addCommand('blublu', new CKEDITOR.dialogCommand('blublu'));
CKEDITOR.dialog.add( 'blublu', this.path + 'dialogs/dialog.js' );
如果我按下对话框显示的按钮,一切都很好。现在,我尝试从另一个对话框打开此窗口:
( function() {
CKEDITOR.dialog.add( 'templates', function( editor ) {
return {
title: editor.lang.templates.title,
contents: [...],
onHide: function(){
if(condition)
//dostufff;
this.hide();
editor.execCommand('blublu');
}
}
}
});
它在第一次加载编辑器时起作用。但是,如果我从toolbar
中的按钮打开对话框,然后关闭它,则无法从“模板”对话框中打开对话框。我有深色背景,好像没有显示对话框(对话框除外)。它是隐藏的,仅显示它是不够的,因为它上的所有按钮处理程序均不起作用。
我在控制台中没有错误。
有解决方案吗?
答案 0 :(得分:1)
我已经使用现有插件对其进行了测试,看来您需要使用setTimeout
异步调用execCommand。
setTimeout( function() {
execCommand( commandName );
} );
如果修复程序不适用于每种浏览器,那么您将不得不增加一些短暂的延迟。我没有更好的解决方案。