我有这个插件,我希望在WYSIWYG和Source模式下启用。这是简单的代码:
(function()
{
CKEDITOR.plugins.add('oovideo',
{
init : function(editor)
{
editor.addCommand('oovideo', new CKEDITOR.dialogCommand('oovideo'));
editor.ui.addButton('OOVideo',
{
label: 'OOVideo',
command: 'oovideo',
icon: 'http://www.google.com/favicon.ico',
modes : { source : 1, wysiwyg : 1, enhancedsource : 1 }
});
CKEDITOR.dialog.addIframe(
'oovideo',
'OOVideo',
'http://www.example.com/', 450, 500,
null, null
);
}
});
})();
目前按钮只会在WYSIWYG模式下拉出iFrame对话框。
因为我在按钮控件中添加了modes : { source : 1, wysiwyg : 1, enhancedsource : 1 }
,所以在所有模式下按钮都不会显示为灰色,但按钮只能在WYSIWYG模式下运行。
我在这篇文章中找到了一些提示:
CKEditor plugin button disabled in source mode
似乎我必须在modes
调用中包含editor.addCommand()
变量,但我在该参数空间中传递CKEDITOR.dialogCommand
对象而不是JS代码。
传递对话框对象和模式参数的最佳方法是什么?谢谢你的帮助!
答案 0 :(得分:0)
我找到了解决方案 - 可以将editor.addCommmand分配给变量,然后在新行上添加modes
属性。
var command = editor.addCommand('tgroovideo', new CKEDITOR.dialogCommand('tgroovideo'));
command.modes = { wysiwyg:1, enhancedsource:1 };