81 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
		
		
			
		
	
	
			81 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
| 
								 | 
							
								/*******************************************************************************
							 | 
						|||
| 
								 | 
							
								* KindEditor - WYSIWYG HTML Editor for Internet
							 | 
						|||
| 
								 | 
							
								* Copyright (C) 2006-2011 kindsoft.net
							 | 
						|||
| 
								 | 
							
								*
							 | 
						|||
| 
								 | 
							
								* @author Roddy <luolonghao@gmail.com>
							 | 
						|||
| 
								 | 
							
								* @site http://www.kindsoft.net/
							 | 
						|||
| 
								 | 
							
								* @licence http://www.kindsoft.net/license.php
							 | 
						|||
| 
								 | 
							
								*******************************************************************************/
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								KindEditor.plugin('quickformat', function(K) {
							 | 
						|||
| 
								 | 
							
									var self = this, name = 'quickformat',
							 | 
						|||
| 
								 | 
							
										blockMap = K.toMap('blockquote,center,div,h1,h2,h3,h4,h5,h6,p');
							 | 
						|||
| 
								 | 
							
									function getFirstChild(knode) {
							 | 
						|||
| 
								 | 
							
										var child = knode.first();
							 | 
						|||
| 
								 | 
							
										while (child && child.first()) {
							 | 
						|||
| 
								 | 
							
											child = child.first();
							 | 
						|||
| 
								 | 
							
										}
							 | 
						|||
| 
								 | 
							
										return child;
							 | 
						|||
| 
								 | 
							
									}
							 | 
						|||
| 
								 | 
							
									self.clickToolbar(name, function() {
							 | 
						|||
| 
								 | 
							
										self.focus();
							 | 
						|||
| 
								 | 
							
										var doc = self.edit.doc,
							 | 
						|||
| 
								 | 
							
											range = self.cmd.range,
							 | 
						|||
| 
								 | 
							
											child = K(doc.body).first(), next,
							 | 
						|||
| 
								 | 
							
											nodeList = [], subList = [],
							 | 
						|||
| 
								 | 
							
											bookmark = range.createBookmark(true);
							 | 
						|||
| 
								 | 
							
										while(child) {
							 | 
						|||
| 
								 | 
							
											next = child.next();
							 | 
						|||
| 
								 | 
							
											var firstChild = getFirstChild(child);
							 | 
						|||
| 
								 | 
							
											if (!firstChild || firstChild.name != 'img') {
							 | 
						|||
| 
								 | 
							
												if (blockMap[child.name]) {
							 | 
						|||
| 
								 | 
							
													child.html(child.html().replace(/^(\s| | )+/ig, ''));
							 | 
						|||
| 
								 | 
							
													child.css('text-indent', '2em');
							 | 
						|||
| 
								 | 
							
												} else {
							 | 
						|||
| 
								 | 
							
													subList.push(child);
							 | 
						|||
| 
								 | 
							
												}
							 | 
						|||
| 
								 | 
							
												if (!next || (blockMap[next.name] || blockMap[child.name] && !blockMap[next.name])) {
							 | 
						|||
| 
								 | 
							
													if (subList.length > 0) {
							 | 
						|||
| 
								 | 
							
														nodeList.push(subList);
							 | 
						|||
| 
								 | 
							
													}
							 | 
						|||
| 
								 | 
							
													subList = [];
							 | 
						|||
| 
								 | 
							
												}
							 | 
						|||
| 
								 | 
							
											}
							 | 
						|||
| 
								 | 
							
											child = next;
							 | 
						|||
| 
								 | 
							
										}
							 | 
						|||
| 
								 | 
							
										K.each(nodeList, function(i, subList) {
							 | 
						|||
| 
								 | 
							
											var wrapper = K('<p style="text-indent:2em;"></p>', doc);
							 | 
						|||
| 
								 | 
							
											subList[0].before(wrapper);
							 | 
						|||
| 
								 | 
							
											K.each(subList, function(i, knode) {
							 | 
						|||
| 
								 | 
							
												wrapper.append(knode);
							 | 
						|||
| 
								 | 
							
											});
							 | 
						|||
| 
								 | 
							
										});
							 | 
						|||
| 
								 | 
							
										range.moveToBookmark(bookmark);
							 | 
						|||
| 
								 | 
							
										self.addBookmark();
							 | 
						|||
| 
								 | 
							
									});
							 | 
						|||
| 
								 | 
							
								});
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								/**
							 | 
						|||
| 
								 | 
							
								--------------------------
							 | 
						|||
| 
								 | 
							
								abcd<br />
							 | 
						|||
| 
								 | 
							
								1234<br />
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								to
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								<p style="text-indent:2em;">
							 | 
						|||
| 
								 | 
							
									abcd<br />
							 | 
						|||
| 
								 | 
							
									1234<br />
							 | 
						|||
| 
								 | 
							
								</p>
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								--------------------------
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								  abcd<img>1233
							 | 
						|||
| 
								 | 
							
								<p>1234</p>
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								to
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								<p style="text-indent:2em;">abcd<img>1233</p>
							 | 
						|||
| 
								 | 
							
								<p style="text-indent:2em;">1234</p>
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								--------------------------
							 | 
						|||
| 
								 | 
							
								*/
							 |