| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 | /** * 插入分割线插件 * @file * @since 1.2.6.1 *//** * 插入分割线 * @command horizontal * @method execCommand * @param { String } cmdName 命令字符串 * @example * ```javascript * editor.execCommand( 'horizontal' ); * ``` */UE.plugins['horizontal'] = function(){    var me = this;    me.commands['horizontal'] = {        execCommand : function( cmdName ) {            var me = this;            if(me.queryCommandState(cmdName)!==-1){                me.execCommand('insertHtml','<hr>');                var range = me.selection.getRange(),                    start = range.startContainer;                if(start.nodeType == 1 && !start.childNodes[range.startOffset] ){                    var tmp;                    if(tmp = start.childNodes[range.startOffset - 1]){                        if(tmp.nodeType == 1 && tmp.tagName == 'HR'){                            if(me.options.enterTag == 'p'){                                tmp = me.document.createElement('p');                                range.insertNode(tmp);                                range.setStart(tmp,0).setCursor();                            }else{                                tmp = me.document.createElement('br');                                range.insertNode(tmp);                                range.setStartBefore(tmp).setCursor();                            }                        }                    }                }                return true;            }        },        //边界在table里不能加分隔线        queryCommandState : function() {            return domUtils.filterNodeList(this.selection.getStartElementPath(),'table') ? -1 : 0;        }    };//    me.addListener('delkeyup',function(){//        var rng = this.selection.getRange();//        if(browser.ie && browser.version > 8){//            rng.txtToElmBoundary(true);//            if(domUtils.isStartInblock(rng)){//                var tmpNode = rng.startContainer;//                var pre = tmpNode.previousSibling;//                if(pre && domUtils.isTagNode(pre,'hr')){//                    domUtils.remove(pre);//                    rng.select();//                    return;//                }//            }//        }//        if(domUtils.isBody(rng.startContainer)){//            var hr = rng.startContainer.childNodes[rng.startOffset -1];//            if(hr && hr.nodeName == 'HR'){//                var next = hr.nextSibling;//                if(next){//                    rng.setStart(next,0)//                }else if(hr.previousSibling){//                    rng.setStartAtLast(hr.previousSibling)//                }else{//                    var p = this.document.createElement('p');//                    hr.parentNode.insertBefore(p,hr);//                    domUtils.fillNode(this.document,p);//                    rng.setStart(p,0);//                }//                domUtils.remove(hr);//                rng.setCursor(false,true);//            }//        }//    })    me.addListener('delkeydown',function(name,evt){        var rng = this.selection.getRange();        rng.txtToElmBoundary(true);        if(domUtils.isStartInblock(rng)){            var tmpNode = rng.startContainer;            var pre = tmpNode.previousSibling;            if(pre && domUtils.isTagNode(pre,'hr')){                domUtils.remove(pre);                rng.select();                domUtils.preventDefault(evt);                return true;            }        }    })};
 |