如何使用CKEditor自定义下拉插件添加样式

时间:2014-09-01 09:09:53

标签: javascript jquery html css ckeditor

所以我添加了这个插件,它为我提供了一个代码,在我的CKeditor工具栏上有一个下拉菜单,它保存了我自己在点击时自我应用的样式。见代码:

CKEDITOR.plugins.add( 'tokens',
{   
   requires : ['richcombo'], //, 'styles' ],
   init : function( editor )
   {
      var config = editor.config,
         lang = editor.lang.format;

      // Gets the list of tags from the settings.
      var tags = []; //new Array();
      //this.add('value', 'drop_text', 'drop_label');
      tags[0]=["[contact_name]", "Name", "Name"];
      tags[1]=["[contact_email]", "email", "email"];
      tags[2]=["[contact_user_name]", "User name", "User name"];

      // Create style objects for all defined styles.

      editor.ui.addRichCombo( 'tokens',
         {
            label : "Insert tokens",
            title :"Insert tokens",
            voiceLabel : "Insert tokens",
            className : 'cke_format',
            multiSelect : false,

            panel :
            {
               css : [ config.contentsCss, CKEDITOR.getUrl( editor.skinPath + 'editor.css' ) ],
               voiceLabel : lang.panelVoiceLabel
            },

            init : function()
            {
               this.startGroup( "Tokens" );
               //this.add('value', 'drop_text', 'drop_label');
               for (var this_tag in tags){
                  this.add(tags[this_tag][0], tags[this_tag][1], tags[this_tag][2]);
               }
            },

            onClick : function( value )
            {         
               editor.focus();
               editor.fire( 'saveSnapshot' );
               editor.insertHtml(value);
               editor.fire( 'saveSnapshot' );
            }
         });
   }
});

所以这段代码只是插入标签中的内容[" [contact_name"]所以当你点击" Name"在下拉列表中,它只是在文本编辑器中删除[contact_name]。我想知道如何使每个标记成为一个特定的函数,它将css添加到文本编辑器中选择的任何内容中。例如,有一个名为' Red Font'什么< p>字体存在它变成红色。

2 个答案:

答案 0 :(得分:0)

CKEDITOR.replace( 'editorId', {
    extraPlugins: 'tokens'
});

添加此代码并将编辑器ID替换为您的编辑器ID。 是的。

答案 1 :(得分:0)

CKEDITOR.replace( 'editor', { 
    extraPlugins: 'tokens' // why tokens see below
});

因为你已经给出了

CKEDITOR.plugins.add( 'tokens',
{   
    requires : ['richcombo']
    ..