vBulletin / CKEditor插件在源模式下禁用

时间:2014-07-23 22:48:11

标签: javascript ckeditor vbulletin

我有这个插件,我希望在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代码。

传递对话框对象和模式参数的最佳方法是什么?谢谢你的帮助!

1 个答案:

答案 0 :(得分:0)

我找到了解决方案 - 可以将editor.addCommmand分配给变量,然后在新行上添加modes属性。

var command = editor.addCommand('tgroovideo', new CKEDITOR.dialogCommand('tgroovideo'));
command.modes = { wysiwyg:1, enhancedsource:1 };