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