/******************************************************************************* * KindEditor - WYSIWYG HTML Editor for Internet * Copyright (C) 2006-2011 kindsoft.net * * @author Roddy * @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('

', doc); subList[0].before(wrapper); K.each(subList, function (i, knode) { wrapper.append(knode); }); }); range.moveToBookmark(bookmark); self.addBookmark(); }); }); /** -------------------------- abcd
1234
to

abcd
1234

--------------------------   abcd1233

1234

to

abcd1233

1234

-------------------------- */