tinymce.PluginManager.add('rowspacing', function(editor, url) { var pluginName='设置段间距'; var global$1 = tinymce.util.Tools.resolve('tinymce.util.Tools'); var rowspacing_val = editor.getParam('rowspacing_val', '5px 10px 15px 20px 25px 30px'); editor.on('init', function() { editor.formatter.register({ rowspacingtop: { selector: 'p,h1,h2,h3,h4,h5,h6,td,th,div,ul,ol,li,table', styles: { 'margin-top': '%value' } }, rowspacingbottom: { selector: 'p,h1,h2,h3,h4,h5,h6,td,th,div,ul,ol,li,table', styles: { 'margin-bottom': '%value' } } }); }); var doTopAct = function (value) { editor.formatter.apply('rowspacingtop', { value: value }); editor.fire('change', {}); }; var doBottomAct = function (value) { editor.formatter.apply('rowspacingbottom', { value: value }); editor.fire('change', {}); }; editor.ui.registry.getAll().icons.rowspacingtop || editor.ui.registry.addIcon('rowspacingtop',''); editor.ui.registry.getAll().icons.rowspacingbottom || editor.ui.registry.addIcon('rowspacingbottom',''); editor.ui.registry.addMenuButton('rowspacingtop', { icon: 'rowspacingtop', tooltip: pluginName, fetch: function(callback) { var dom = editor.dom; var blocks = editor.selection.getSelectedBlocks(); var lhv = 0; global$1.each(blocks, function(block) { if(lhv==0){ lhv = dom.getStyle(block,'margin-top') ? dom.getStyle(block,'margin-top') : 0; } }); var items = rowspacing_val.split(' ').map(function(item){ var text = item; var value = item; return { type: 'togglemenuitem', text: text, active : lhv==value ? true :false, onAction: function() { doTopAct(value); } }; }); callback(items); } }); editor.ui.registry.addMenuButton('rowspacingbottom', { icon: 'rowspacingbottom', tooltip: pluginName, fetch: function(callback) { var dom = editor.dom; var blocks = editor.selection.getSelectedBlocks(); var lhv = 0; global$1.each(blocks, function(block) { if(lhv==0){ lhv = dom.getStyle(block,'margin-bottom') ? dom.getStyle(block,'margin-bottom') : 0; } }); var items = rowspacing_val.split(' ').map(function(item){ var text = item; var value = item; return { type: 'togglemenuitem', text: text, active : lhv==value ? true :false, onAction: function() { doBottomAct(value); } }; }); callback(items); } }); return { getMetadata: function () { return { name: pluginName }; } }; });