/**
* 插入分割线插件
* @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','
');
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;
}
}
})
};