63 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			63 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| tinymce.PluginManager.add('indent2em', function(editor, url) {
 | |
|     var pluginName='首行缩进';
 | |
|     var global$1 = tinymce.util.Tools.resolve('tinymce.util.Tools');
 | |
|     var indent2em_val = editor.getParam('indent2em_val', '2em');
 | |
|     var doAct = function () {
 | |
|         var dom = editor.dom;
 | |
|         var blocks = editor.selection.getSelectedBlocks();
 | |
|         var act = '';
 | |
|         global$1.each(blocks, function (block) {
 | |
|             if(act==''){
 | |
|                 act = dom.getStyle(block,'text-indent')==indent2em_val ? 'remove' : 'add';
 | |
|             }
 | |
|             if( act=='add' ){
 | |
|                 dom.setStyle(block, 'text-indent', indent2em_val);
 | |
|             }else{
 | |
|                 var style=dom.getAttrib(block,'style');
 | |
|                 var reg = new RegExp('text-indent:[\\s]*' + indent2em_val + ';', 'ig');
 | |
|                 style = style.replace(reg, '');
 | |
|                 dom.setAttrib(block,'style',style);
 | |
|             }
 | |
| 
 | |
|         });
 | |
|     };
 | |
| 
 | |
|     editor.ui.registry.getAll().icons.indent2em || editor.ui.registry.addIcon('indent2em','<svg viewBox="0 0 1024 1024" xmlns="http://www.w3.org/2000/svg" width="24" height="24"><path d="M170.666667 563.2v-102.4H887.466667v102.4zM170.666667 836.266667v-102.4H887.466667v102.4zM512 290.133333v-102.4H887.466667v102.4zM238.933333 341.333333V136.533333l204.8 102.4z" fill="#2c2c2c" p-id="5210"></path></svg>');
 | |
| 
 | |
|     var stateSelectorAdapter = function (editor, selector) {
 | |
|       return function (buttonApi) {
 | |
|         return editor.selection.selectorChangedWithUnbind(selector.join(','), buttonApi.setActive).unbind;
 | |
|       };
 | |
|     };
 | |
|     
 | |
|     editor.ui.registry.addToggleButton('indent2em', {
 | |
|         icon: 'indent2em',
 | |
|         tooltip: pluginName,
 | |
|         onAction: function () {
 | |
|             doAct();
 | |
|         },
 | |
|         onSetup: stateSelectorAdapter(editor, [
 | |
|           '*[style*="text-indent"]',
 | |
|           '*[data-mce-style*="text-indent"]',
 | |
|         ])
 | |
|     });
 | |
| 
 | |
|     editor.ui.registry.addMenuItem('indent2em', {
 | |
|         text: pluginName,
 | |
|         onAction: function() {
 | |
|             doAct();
 | |
|         }
 | |
|     });
 | |
| 
 | |
|     editor.addCommand('indent2em', doAct  );
 | |
| 
 | |
|     return {
 | |
|         getMetadata: function () {
 | |
|             return  {
 | |
|                 name: pluginName,
 | |
|                 url: "http://tinymce.ax-z.cn/more-plugins/indent2em.php",
 | |
|             };
 | |
|         }
 | |
|     };
 | |
| });
 |