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