- Documentation
- Concepts
- Custom Elements
- Save
- File
- Image
- Video
- Embedly Plugin
- Migration Guides
- From TinyMCE
- From V1
Custom Elements
Custom Button
Custom Plugin
Custom Dropdown
Custom Icon
Custom Popup
Custom Quick Insert Button
Custom Shortcut
Custom Dropdown
Below is the basic JS for creating a custom dropdown for the editor.
For a working example please see the Custom Dropdown Example
// Define an icon.
$.FroalaEditor.DefineIcon('dropdownIcon', { NAME: 'magic'})
// Define a dropdown button.
$.FroalaEditor.RegisterCommand('myDropdown', {
// Button title.
title: 'My Dropdown',
// Mark the button as a dropdown.
type: 'dropdown',
// Specify the icon for the button.
// If this option is not specified, the button name will be used.
icon: 'dropdownIcon',
// Options for the dropdown.
options: {
'opt1': 'Option 1',
'opt2': 'Option 2'
},
// If present, the options property will be ignored.
// It can be used to define a custom HTML for the dropdown.
html: function () {
// The current context is the editor instance.
return '';
},
// Save the dropdown action into undo stack.
undo: true,
// Focus inside the editor before callback.
focus: true,
// Refresh the button state after the callback.
refreshAfterCallback: true,
// Callback.
callback: function (cmd, val, params) {
// The current context is the editor instance.
console.log (this.html.get());
},
// Called when the dropdown button state might have changed.
refresh: function ($btn) {
// The current context is the editor instance.
console.log (this.selection.element());
},
// Called when the dropdown is shown.
refreshOnShow: function ($btn, $dropdown) {
// The current context is the editor instance.
console.log (this.selection.element());
}
})
Note: Once a command is defined it can be included in the buttons options: imageAltButtons, imageEditButtons, imageInsertButtons, imageSizeButtons, linkEditButtons, linkInsertButtons, tableColorsButtons, tableEditButtons, tableInsertButtons, toolbarButtons, toolbarButtonsMD, toolbarButtonsSM, toolbarButtonsXS, videoEditButtons, videoInsertButtons or videoSizeButtons.
