How to add a custom button to the toolbar that calls a JavaScript function? How to add a custom button to the toolbar that calls a JavaScript function? javascript javascript

How to add a custom button to the toolbar that calls a JavaScript function?


Also there is a nice way allowing one to add the button without creating plugin.

html:

<textarea id="container">How are you!</textarea>

javascript:

editor = CKEDITOR.replace('container'); // bind editoreditor.addCommand("mySimpleCommand", { // create named command    exec: function(edt) {        alert(edt.getData());    }});editor.ui.addButton('SuperButton', { // add new button and bind our command    label: "Click me",    command: 'mySimpleCommand',    toolbar: 'insert',    icon: 'https://avatars1.githubusercontent.com/u/5500999?v=2&s=16'});

Check out how it works here: DEMO


I am in the process of developing a number of custom Plugins for CKEditor and here's my survival pack of bookmarks:

For your purpose, I would recommend look at one of the plugins in the _source/plugins directory, for example the "print" button. Adding a simple Javascript function is quite easy to achieve. You should be able to duplicate the print plugin (take the directory from _source into the actual plugins/ directory, worry about minification later), rename it, rename every mention of "print" within it, give the button a proper name you use later in your toolbar setup to include the button, and add your function.


See this URL for a easy example http://ajithmanmadhan.wordpress.com/2009/12/16/customizing-ckeditor-and-adding-a-new-toolbar-button/

There are a couple of steps:

1) create a plugin folder

2) register your plugin (the URL above says to edit the ckeditor.js file DO NOT do this, as it will break next time a new version is relased. Instead edit the config.js and add a line like so

config.extraPlugins = 'pluginX,pluginY,yourPluginNameHere'; 

3) make a JS file called plugin.js inside your plugin folderHere is my code

(function() {    //Section 1 : Code to execute when the toolbar button is pressed    var a = {        exec: function(editor) {            var theSelectedText = editor.getSelection().getNative();            alert(theSelectedText);        }    },    //Section 2 : Create the button and add the functionality to it    b='addTags';    CKEDITOR.plugins.add(b, {        init: function(editor) {            editor.addCommand(b, a);            editor.ui.addButton("addTags", {                label: 'Add Tag',                 icon: this.path+"addTag.gif",                command: b            });        }    }); })();