Jquery CKEditor:在运行时更改config.js中的值?

Jquery CKEditor:在运行时更改config.js中的值?,jquery,ckeditor,config,Jquery,Ckeditor,Config,我想要一个开关,用于您可以在config.js中启用的CKEditor功能“”: CKEDITOR.editorConfig = function( config ) { config.forcePasteAsPlainText = true; } 从我的网站的js文件中,我现在尝试使用jquery更改forcePasteAsPlainText的值: if(typeof(CKEDITOR) !== 'undefined') { $('#filterTextButton').cl

我想要一个开关,用于您可以在config.js中启用的CKEditor功能“”:

CKEDITOR.editorConfig = function( config ) {
  config.forcePasteAsPlainText = true;
}

从我的网站的js文件中,我现在尝试使用jquery更改forcePasteAsPlainText的值:

 if(typeof(CKEDITOR) !== 'undefined') { 
    $('#filterTextButton').click(function () {
        CKEDITOR.config.forcePasteAsPlainText = !CKEDITOR.config.forcePasteAsPlainText;
        if(CKEDITOR.config.forcePasteAsPlainText) {
            $("#filterSwitch").html("OFF");
        }
        else {
            $("#filterSwitch").html("ON");
        }
    });
}
问题是我无法访问CKEDITOR.config.forcePasteAsPlainText。我得到一个未定义的

将对象CKEDITOR.config转换为字符串,我看到有一个名为CKEDITOR.config.plugins的对象,其中包含一个名为“pastetext”的参数(属于forcePasteAsPlainText)。但我不知道如何阅读或重新设定


我了解到更改配置值的一种可能性是通过以下方式重新初始化整个编辑器。。。但必须有另一种解决办法

PS:我希望您可以使用以下选项,但这对我不起作用:

CKEDITOR.on('instanceReady', function(ev) {
   ev.editor._.commands.paste = ev.editor._.commands.pastetext;
});

不幸的是,如果不重新初始化编辑器,就无法修改
forcePasteAsPlaintext
。您可以在这里检查此配置设置是否仅在启动时使用一次

另一种解决方案是手动关闭/打开强制粘贴为纯文本。例如,像这样:

// Set to false to switch forcing off.
var force = true;

editor.on( 'beforeCommandExec', function ( evt )
{
     var mode = evt.data.commandData;
     if ( force && evt.data.name == 'paste' && mode != 'html' )
     {
         editor.execCommand( 'pastetext' );
         evt.cancel();
     }
}, null, null, 0 );

editor.on( 'beforePaste', function( evt )
{
    if ( force )
        evt.data.mode = 'text';
});

不幸的是,如果不重新初始化编辑器,就无法修改
forcePasteAsPlaintext
。您可以在这里检查此配置设置是否仅在启动时使用一次

另一种解决方案是手动关闭/打开强制粘贴为纯文本。例如,像这样:

// Set to false to switch forcing off.
var force = true;

editor.on( 'beforeCommandExec', function ( evt )
{
     var mode = evt.data.commandData;
     if ( force && evt.data.name == 'paste' && mode != 'html' )
     {
         editor.execCommand( 'pastetext' );
         evt.cancel();
     }
}, null, null, 0 );

editor.on( 'beforePaste', function( evt )
{
    if ( force )
        evt.data.mode = 'text';
});

谢谢你的回答!我现在使用了一种解决方法,从粘贴的数据中删除html标记:谢谢你的回答!我现在使用了一种变通方法,从粘贴的数据中删除html标记: