2014-09-01 96 views
2

因此,我添加了這個插件,該代碼在我的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」]所以,當你點擊「名稱」,在下拉菜單中,它只是降低[CONTACT_NAME]文本編輯。我想知道如何讓每個標記都是一個特定的函數,它將CSS添加到文本編輯器中選定的任何內容中。例如,有一個名爲「紅色字體」的函數,無論它存在什麼,它都會變成紅色。

+0

爲你的插件的任何新的發展? – Charlesliam 2014-12-22 17:47:33

+0

你有沒有想到這一點 - 需要使我的更寬和風格的字體? – JK36 2015-10-26 21:08:43

回答

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

添加此代碼並將編輯器ID替換爲您的編輯器ID。 就是這樣。

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

,因爲你給了

CKEDITOR.plugins.add('tokens', 
{ 
    requires : ['richcombo'] 
    .. 
相關問題