///import core ///commands 删除 ///commandsName Delete ///commandsTitle 删除 /** * 删除 * @function * @name baidu.editor.execCommand * @param {String} cmdName delete删除 */ UE.commands['delete'] = { execCommand : function (){ var range = this.selection.getRange(), mStart = 0, mEnd = 0, me = this; if(this.selectAll ){ //trace:1633 me.body.innerHTML = '

'+(browser.ie ? ' ' : '
')+'

'; range.setStart(me.body.firstChild,0).setCursor(false,true); me.selectAll = false; return; } if(me.currentSelectedArr && me.currentSelectedArr.length > 0){ for(var i=0,ci;ci=me.currentSelectedArr[i++];){ if(ci.style.display != 'none'){ ci.innerHTML = browser.ie ? domUtils.fillChar : '
' } } range.setStart(me.currentSelectedArr[0],0).setCursor(); return; } if(range.collapsed) return; range.txtToElmBoundary(); //&& !domUtils.isBlockElm(range.startContainer) while(!range.startOffset && !domUtils.isBody(range.startContainer) && !dtd.$tableContent[range.startContainer.tagName] ){ mStart = 1; range.setStartBefore(range.startContainer); } //&& !domUtils.isBlockElm(range.endContainer) while(!domUtils.isBody(range.endContainer)&& !dtd.$tableContent[range.endContainer.tagName] ){ var child,endContainer = range.endContainer,endOffset = range.endOffset; // if(endContainer.nodeType == 3 && endOffset == endContainer.nodeValue.length){ // range.setEndAfter(endContainer); // continue; // } child = endContainer.childNodes[endOffset]; if(!child || domUtils.isBr(child) && endContainer.lastChild === child){ range.setEndAfter(endContainer); continue; } break; } if(mStart){ var start = me.document.createElement('span'); start.innerHTML = 'start'; start.id = '_baidu_cut_start'; range.insertNode(start).setStartBefore(start) } if(mEnd){ var end = me.document.createElement('span'); end.innerHTML = 'end'; end.id = '_baidu_cut_end'; range.cloneRange().collapse(false).insertNode(end); range.setEndAfter(end) } range.deleteContents(); if(domUtils.isBody(range.startContainer) && domUtils.isEmptyBlock(me.body)){ me.body.innerHTML = '

'+(browser.ie?'':'
')+'

'; range.setStart(me.body.firstChild,0).collapse(true); }else if ( !browser.ie && domUtils.isEmptyBlock(range.startContainer)){ range.startContainer.innerHTML = '
' } range.select(true) }, queryCommandState : function(){ if(this.currentSelectedArr && this.currentSelectedArr.length > 0){ return 0; } return this.highlight || this.selection.getRange().collapsed ? -1 : 0; } };