///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;
}
};