我应该如何在同一个项目中使用带有和不带工具栏的ckeditor?

时间:2015-05-28 10:05:26

标签: javascript ckeditor toolbar

我正在尝试在一个网页上使用带有工具栏的ckeditor,而在另一个网页上没有工具栏。我尝试更改config.js文件以删除工具栏插件,但删除了两个页面。另外,我在我的js中试过这个(但它不起作用):

var editor = CKEDITOR.inline( 'editable', {
    removePlugins: 'toolbar'
} );

(我猜它不起作用,因为它只适用于内联编辑。)

2 个答案:

答案 0 :(得分:0)

我建议您为此设置一个单独的函数或处理程序。不要修改主config.js文件,因为它会影响所有ckeditor实例。创建一个接受配置类型的元素和参数的函数。根据参数和元素,将为您调用此函数的每个元素都有一个ckeditor实例。

<强> JS

function ckeditorToolbar(elem,config) {
    CKEDITOR.disableAutoInline = true;
    CKEDITOR.dtd.$editable.input = 1;
    elem.attr('contenteditable', true);
    var editor = CKEDITOR.inline(elem.get(0), {
        toolbar: config      
    });
}

现在,只要您想在元素上使用ckeditor工具栏,就可以调用此函数。 例如:

<强> HTML:

<textarea id="one"></textarea>
<textarea id="two"></textarea>

<强> JS:

ckeditorToolbar($("#one")[0],config1);
ckeditorToolbar($("#two")[0],config2); 

config1,config2是将作为参数传递的配置。

我希望这就是你在问题中的意思,它解决了你的问题。

答案 1 :(得分:0)

初始化CKEditor实例时,可以在线设置配置属性。

假设您在HTML代码中的某个位置使用&lt; script&gt;标记:

CKEDITOR.replace( 'editor1');

并且这个在其他地方(因为你在不同的网页中有两个CKEditor实例)

CKEDITOR.replace( 'editor2');

根据documentation of initializationdocumentation of configuration,你可以写

CKEDITOR.replace( 'editor1', {
    language: 'en',
    toolbar: [ [ 'Bold', 'Italic' ] ];
});

而不是第一次出现,

CKEDITOR.replace( 'editor2', {
    language: 'en',
    toolbar: []; // this means no icons at all on the toolbar
});

而不是另一个。现在,您有两个CKEditor实例的不同工具栏配置。