📄 weiseditor.js
字号:
var p = nodeID.parentNode;
p.normalize();
},
getSelection:
{
Get:function(){return Editor.Config.Selection();},
removeAllRanges:function(){
if(!window.isIE)
this.Get().removeAllRanges();
},
addRange:function(r){
if(window.isIE) //IE
{
var selStart = Editor.Config.getSelection.selectRange(false);
if (Editor.Config.Range.collapsed)
{
selStart.setEndPoint('StartToStart',selStart);
}
else
{
var selEnd = Editor.Config.getSelection.selectRange(true);
selStart.setEndPoint('EndToStart',selEnd);
}
selStart.select();
}
else
{
if (r=='')
{
if (Editor.Config.Range.startContainer.nodeType == 1)
r.selectNode(Editor.Config.Range.startContainer);
else
{
var _B = Editor.Config.Document.createElement('B');
_B.id = '__________addRange__B___Del_______';
r.deleteContents();
r.insertNode(_B);
var BNode = Editor.Config.Document.getElementById('__________addRange__B___Del_______');
r.selectNodeContents(BNode.parentNode);
BNode.parentNode.removeChild(BNode);
}
}
r.setStart(Editor.Config.Range.startContainer,Editor.Config.Range.startOffset);
try {
r.setEnd(Editor.Config.Range.endContainer,Editor.Config.Range.endOffset);
}catch (e){
if (e.toString() == "NS_ERROR_ILLEGAL_VALUE")
{
r.collapse(true);
r.setEnd(Editor.Config.Range.endContainer,Editor.Config.Range.endOffset);
}
}
this.removeAllRanges();
this.Get().addRange(r);
}
Editor.Config.Select();
},
selectRange:function(end) //IE
{
var range = this.Get().createRange();
var RangePart = null;
var RangeOffset = 0;
var _c = false;
var selNode = null;
var flag = true;
_c = Editor.Config.Range.collapsed;
////////////////////////////////////////////////////////
if (_c)
{
RangePart = Editor.Config.Range.startContainer;
RangeOffset = Editor.Config.Range.startOffset;
if (RangePart.nodeType==1)
{
RangeOffset--;
selNode = RangePart.childNodes[RangeOffset];
if(!selNode||(selNode&&selNode.nodeType==3))
selNode = RangePart;
range.moveToElementText(selNode);
range.collapse(false);
var offset = 0;
switch (selNode.nodeName)
{
case 'HR':
case 'BR':
case 'TABLE':
case 'P':
case 'DIV':
case 'H1':
case 'H2':
case 'H3':
case 'H4':
case 'H5':
case 'H6':
case 'IMG':
offset = 1;
break;
}
range.move('character',offset);
}
else if (RangePart.nodeType==3)
{
var pnode = RangePart;
while (pnode)
{
if (pnode.nodeType==1)
{
selNode = pnode;
flag = false;
break;
}
pnode=pnode.previousSibling;
}
if (selNode==null||selNode=='undefined')
{
selNode = RangePart.parentNode;
flag = true;
}
range.moveToElementText(selNode);
range.collapse(flag);
range.moveStart('character',RangeOffset);
}
range.select();
} // (_c)
else
{
if (end)
range = Editor.Config.getSelection._setSelEnd(range);
else
range = Editor.Config.getSelection._setSelStart(range);
}
return range;
},
_setSelStart:function(range)
{
var flag = true;
RangePart = Editor.Config.Range.startContainer;
RangeOffset = Editor.Config.Range.startOffset;
var selNode = null;
if (RangePart.nodeType==1)
{
selNode = RangePart.childNodes[RangeOffset];
if(!selNode||(selNode&&selNode.nodeType==3))
selNode = RangePart;
range.moveToElementText(selNode);
range.collapse(true);
range.move('character',0);
}
else if (RangePart.nodeType==3)
{
var pnode = RangePart;
while (pnode)
{
if (pnode.nodeType==1)
{
selNode = pnode;
flag = false;
break;
}
pnode=pnode.previousSibling;
}
if (selNode==null||selNode=='undefined')
{
selNode = RangePart.parentNode ? RangePart.parentNode : RangePart;
flag = true;
}
range.moveToElementText(selNode);
range.collapse(flag);
range.move('character',RangeOffset);
}
return range;
},
_setSelEnd:function(range)
{
RangePart = Editor.Config.Range.endContainer;
RangeOffset = Editor.Config.Range.endOffset;
var selNode = null;
if (RangePart.nodeType==1)
{
RangeOffset--;
selNode = RangePart.childNodes[RangeOffset];
if(!selNode||(selNode&&selNode.nodeType==3))
selNode = RangePart;
range.moveToElementText(selNode);
range.collapse(false);
range.move('character',0);
}
else if (RangePart.nodeType==3)
{
RangeOffset = Editor.Config.getSelection.getEndOffset(Editor.Config.Range.endOffset,RangePart);
var pnode = RangePart;
while (pnode)
{
if (pnode.nodeType==1)
{
selNode = pnode;
flag = true;
break;
}
pnode=pnode.nextSibling;
}
if (selNode==null||selNode=='undefined')
{
selNode = RangePart.parentNode ? RangePart.parentNode : RangePart;
flag = false;
if (selNode.nextSibling) //??
switch (selNode.nodeName.toLowerCase()) {
case 'p':
case 'div':
case 'h1':
case 'h2':
case 'h3':
case 'h4':
case 'h5':
case 'h6':
RangeOffset--;
break;
}
}
range.moveToElementText(selNode);
range.collapse(flag);
if (selNode.nodeName.toLowerCase()=='table')
RangeOffset--;
range.move('character',RangeOffset);
}
return range;
},
getEndOffset:function(off,node) //IE
{
var offset = 0;
if (node.nodeType==3)
{
for(var N=node.nextSibling;N!=null;N=N.nextSibling)
{
if (N.nodeType==1)
break;
if (N.nodeType==3)
offset += N.nodeValue.length;
}
for(var N=node.previousSibling;N!=null;N=N.previousSibling)
{
if (N.nodeType==1)
break;
if (N.nodeType==3)
offset += N.nodeValue.length;
}
return off-(offset+node.nodeValue.length);
}
return off;
}
},
GetIndexNode:function(N)
{
var P = N.parentNode ? N.parentNode.firstChild : null;
var I = -1;
while (P)
{
I++;
if (P==N) return I;
P = P.nextSibling;
}
return -1;
},
SaveSelection:function(obj)
{
WeisEditor.Run.SaveDataStep();
Editor.Config.HtmlEdit.focus();
if (window.isIE)
Editor.Config.SelectedPoint = Editor.Config.Selection().createRange();
else
Editor.Config.SelectedPoint = Editor.Config.Selection().getRangeAt(0);
},
HidePanel:function()
{
//Editor.Config.SaveSelection();
var CS = new CoverScreen();
CS.HidePanel();
window.PDocument.documentElement.scrollTop = Editor.Config.HideScrollHeight;
window.PDocument.body.scrollTop = Editor.Config.HideScrollHeight;
Editor.Config.HideScrollHeight = 0;
Editor.Config.Select();
Editor.Config.SelectedPoint = null;
},
Select:function()
{
if (window.isIE)
{
Editor.Config.GetRange().select();
Editor.Config.HtmlEdit.focus();
return true;
}
else
{
var Trange = Editor.Config.Document.createRange();
var range = Editor.Config.GetRange();
if (!range) {Editor.Config.HtmlEdit.focus();return;}
Trange.setStart(range.startContainer,range.startOffset);
try {
Trange.setEnd(range.endContainer,range.endOffset);
}catch (e) {
if (e.toString() == "NS_ERROR_ILLEGAL_VALUE")
{
range.collapse(true);
Trange.setEnd(range.endContainer,range.endOffset);
}
}
Editor.Config.Selection().removeAllRanges();
Editor.Config.Selection().addRange(Trange);
Editor.Config.HtmlEdit.focus();
return true;
}
},
removeEle:function(obj)
{
if (obj)
{
obj.style.display = 'none';
obj.outerHTML = "";
}
},
crtEle:function(El)
{
var Eid = null;
if (!Eid) Eid = Editor.Config.Document.createElement(El);
for (var i=0;i<WeisEditor.Array.length;i++)
{
eval("Eid." + WeisEditor.Array[i].key + "='" + WeisEditor.Array[i].value + "'");
}
return Eid;
},
pasteContent:function(T,C)
{
var range = Editor.Config.GetRange();
var rnd = "" + Math.random() + "";
if (T != "WE_CONTHTML_CODE")
{
var ___MoToPosi____ = null;
___MoToPosi____ = Editor.Config.Document.createElement('P');
___MoToPosi____.id = "______________DelSpan_"+rnd.substring(2)+"______";
___MoToPosi____.innerHTML = " ";
range.deleteContents();
range.insertNode(___MoToPosi____);
range.deleteContents();
range.insertNode(range.createContextualFragment(' '));
var foxIn = Editor.Config.crtEle(T);
range.deleteContents();
range.insertNode(foxIn);
range.setEndAfter(___MoToPosi____);
range.setStartAfter(___MoToPosi____);
Editor.Config.configNodeAround(___MoToPosi____,range);
___MoToPosi____.parentNode.removeChild(___MoToPosi____);
Editor.Config.DOMNodeFresh(foxIn);
var rangeFocus = Editor.Config.Document.createRange();
rangeFocus.selectNode(foxIn.nextSibling);
rangeFocus.setStart(foxIn.nextSibling,1);
rangeFocus.setEnd(foxIn.nextSibling,1);
var sel = Editor.Config.Selection();
sel.removeAllRanges();
sel.addRange(rangeFocus);
return foxIn;
}
else
{
var MoveID = Editor.Config.crtEle('SPAN');
range.deleteContents();
range.insertNode(MoveID);
C = range.createContextualFragment(C);
range.deleteContents();
range.insertNode(C);
range.setEndAfter(MoveID);
range.setStartAfter(MoveID);
Editor.Config.DOMNodeFresh(MoveID);
MoveID.parentNode.removeChild(MoveID);
}
},
WeisEvent:function()
{
if (window.isIE)
return Editor.Config.HtmlEdit.event;
func=Editor.Config.WeisEvent.caller;
while(func!=null)
{
var arg0=func.arguments[0];
if(arg0)
{
return arg0;
}
func=func.caller;
}
return null;
},
srcEle:function()
{
var evt = Editor.Config.WeisEvent();
var El = null;
if (typeof evt != 'undefined')
{
if (window.isIE)
El = evt.srcElement;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -