/** * 大小写转换 * @file * @since 1.2.6.1 */ /** * 把选区内文本变大写,与“tolowercase”命令互斥 * @command touppercase * @method execCommand * @param { String } cmd 命令字符串 * @example * ```javascript * editor.execCommand( 'touppercase' ); * ``` */ /** * 把选区内文本变小写,与“touppercase”命令互斥 * @command tolowercase * @method execCommand * @param { String } cmd 命令字符串 * @example * ```javascript * editor.execCommand( 'tolowercase' ); * ``` */ UE.commands["touppercase"] = UE.commands["tolowercase"] = { execCommand: function(cmd) { var me = this; var rng = me.selection.getRange(); if (rng.collapsed) { return rng; } var bk = rng.createBookmark(), bkEnd = bk.end, filterFn = function(node) { return !domUtils.isBr(node) && !domUtils.isWhitespace(node); }, curNode = domUtils.getNextDomNode(bk.start, false, filterFn); while ( curNode && domUtils.getPosition(curNode, bkEnd) & domUtils.POSITION_PRECEDING ) { if (curNode.nodeType == 3) { curNode.nodeValue = curNode.nodeValue[ cmd == "touppercase" ? "toUpperCase" : "toLowerCase" ](); } curNode = domUtils.getNextDomNode(curNode, true, filterFn); if (curNode === bkEnd) { break; } } rng.moveToBookmark(bk).select(); } };