⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 weiseditor.js

📁 网站编辑的软件
💻 JS
📖 第 1 页 / 共 5 页
字号:
		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 = "&nbsp;";
			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 + -