Rich Text Editor allows you extend the functions of the editor. You can create new custom dropDowns and add them to the editor's toolbar list.
This example demonstrates how to create a custom dropDown.
<div id="div_editor1"> <p>This example demonstrates how to create a custom dropDown.</p> </div> <script> var editor1cfg = {} editor1cfg.svgCode_menu_mymenu = '<svg viewBox="-2 -2 20 20" fill="#5F6368" style="width: 100%; height: 100%;"><path fill-rule="evenodd" d="M8 0a1 1 0 0 1 1 1v5.268l4.562-2.634a1 1 0 1 1 1 1.732L10 8l4.562 2.634a1 1 0 1 1-1 1.732L9 9.732V15a1 1 0 1 1-2 0V9.732l-4.562 2.634a1 1 0 1 1-1-1.732L6 8 1.438 5.366a1 1 0 0 1 1-1.732L7 6.268V1a1 1 0 0 1 1-1z" clip-rule="evenodd"></path></svg>'; editor1cfg.toolbar = "mytoolbar"; editor1cfg.toolbar_mytoolbar = "{bold,italic}|{fontname,fontsize}|{forecolor,backcolor}|removeformat|menu_mymenu" + "#{undo,redo,fullscreenenter,fullscreenexit,togglemore}"; editor1cfg.subtoolbar_mymenu = 'inserttable,insertimage,insertcode'; var editor1 = new RichTextEditor("#div_editor1", editor1cfg); </script>
This example demonstrates how to create a panel dropDown.
<div id="div_editor2"> <p>This example demonstrates how to create a panel dropDown.</p> </div> <script> var editor2cfg = {} editor2cfg.toolbarfactory_mydropdown = function (cmd, suffix) { var editor = this;//Use this, maybe editor2 variable is not ready yet. var option = {}; var inp; option.fillinput = function (input) { inp = input; inp.innerText = "MyDropDown"; inp.style.overflowX = "hidden" } option.fillpanel = function (panel) { panel.style.padding = '8px' panel.innerHTML = "Hello<br/>World<br/>Gogo<br/>"; var btn = document.createElement("button"); btn.innerHTML = "button_b" btn.className = "btn btn-primary"; btn.style.cssText = "height:32px;margin:2px;padding:0px 5px"; btn.onclick = function () { editor.closeCurrentPopup(); console.log("my button clicked"); var p = editor2.insertRootParagraph("p"); p.innerHTML = "You clicked mybutton_b"; alert(p.innerHTML); return false; } panel.appendChild(btn) } var btn = editor.createToolbarDropDown(option, cmd, suffix) return btn; } editor2cfg.toolbar = "mytoolbar"; editor2cfg.toolbar_mytoolbar = "{bold,italic}|{fontname,fontsize}|{forecolor,backcolor}|removeformat|mydropdown" + "#{undo,redo,fullscreenenter,fullscreenexit,togglemore}"; editor2cfg.subtoolbar_mymenu = 'inserttable,insertimage,insertcode'; var editor2 = new RichTextEditor("#div_editor2", editor2cfg); </script>
<h3>Select drop down </h3> <div id="div_editor3"></div> <script> var editor3cfg = {} editor3cfg.toolbarfactory_myselect = function (cmd, suffix) { var sel = document.createElement("select"); sel.style.cssText = "height:32px;margin:2px;padding:0px 5px"; function addOption(text, value) { var option = document.createElement("option"); option.innerText = text; option.setAttribute("value", value); option.rawValue = value; sel.appendChild(option); } addOption("Select an item...") addOption("Red title", "red"); addOption("Blue content", "blue"); sel.onclick = function (e) { //the select will get focus , editor will lost focus e.stopPropagation();//prevent editor get focus automatically } sel.onchange = function () { var option = sel.options[sel.selectedIndex]; var val = option.rawValue; sel.selectedIndex = 0; editor3.insertHTML("<span style='color:" + val + "'>You selected " + val + "</span>") } return sel; } editor3cfg.toolbar = "mytoolbar"; editor3cfg.toolbar_mytoolbar = "{bold,italic}|{fontname,fontsize}|{forecolor,backcolor}|removeformat|myselect" + "#{undo,redo,fullscreenenter,fullscreenexit,togglemore}"; var editor3 = new RichTextEditor("#div_editor3", editor3cfg); </script>