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

📄 etsooeditor.js

📁 TurboCWCShop v1.6.7 is make in the Utility-LAYer Framework.
💻 JS
📖 第 1 页 / 共 5 页
字号:
		
		var numCellIndex=objTD.cellIndex;
		var objTR=objValid.TR;
		var numRowIndex=objTR.rowIndex;
		var objTable=objValid.Table;
		
		var numNowCols=EditorTableGetCols(objTD,numCellIndex);
		var numRows=objTable.rows.length;
		for(var numI=0;numI<numRows;numI++){
			if(objTable.rows.length==0){
				objTable.removeNode(true);
				break;
			}
			var objTempTR=objTable.rows(numI);
			if(objTempTR==null)break;
			var numTempCols=0;
			for(var numH=0;numH<=numCellIndex;numH++){
				var objTempTD=objTempTR.cells(numH);
				if(objTempTD==null)continue;
				var numTempColsAdd=objTempTD.colSpan;
				numTempCols+=numTempColsAdd;
				if(numType==1){
					if(numTempCols>=numNowCols){
						if(numTempColsAdd>1)objTempTD.colSpan-=1;
						else{
							objTempTD.removeNode(true);
							if(objTempTR.cells.length==0)
							{
								objTempTR.removeNode(true);
								numI--;
							}
						}
					}
				}
				else
				{
					if(numTempCols>numNowCols){
						if(numTempColsAdd>1)objTempTD.colSpan+=1;
						else{
							var objNewTD=objTempTR.insertCell(numI);
							objNewTD.innerHTML="&nbsp;";
							objNewTD.mergeAttributes(objTempTD);
						}
					}
				}
			}
		}
	}
}
//合并单元格
function EditorTableMergeCell(numType){
	var objTDs=ETSOOEditor.GetTDs();
	var numLen=objTDs.length;
	if(numLen>1){
		var objBaseTD=objTDs[0];
		var objValid=new EditorTableValid(objBaseTD);
		if(!objValid.Valid)return false;
		
		var numBaseCellIndex=objBaseTD.cellIndex;
		var objBaseTR=objValid.TR;
		var numBaseRowIndex=objBaseTR.rowIndex;
		var objBaseTable=objValid.Table;
		var strText='';
		
		for(var numI=1;numI<numLen;numI++){
			var objTD=objTDs[numI];
			var objValid=new EditorTableValid(objTD);
			if(!objValid.Valid)continue;
			
			var numCellIndex=objTD.cellIndex;
			var objTR=objValid.TR;
			var numRowIndex=objTR.rowIndex;
			var objTable=objBaseTable;
			
			strText+=objTD.innerHTML;
			objTR.deleteCell(numCellIndex);
			if(objTR.cells.length==0)
			{
				objTable.deleteRow(numRowIndex);
			}
		}
		if(numType==1){
			objBaseTR.deleteCell(numBaseCellIndex);
			if(objTR.cells.length==0)
			{
				objTable.deleteRow(numRowIndex);
			}
			if(objTable.rows.length==0)
			{
				objTable.removeNode(true);
			}
		}
		else{
			var numRows=objBaseTable.rows.length;
			objBaseTD.innerHTML+=strText;
			if(numRows==1){
				var objTempTR=objBaseTable.rows(0);
				var numCells=objTempTR.cells.length;
				for(var numH=0;numH<numCells;numH++)
				{
					var objTempTD=objTempTR.cells(numH);
					objTempTD.colSpan=1;
					objTempTD.rowSpan=1;
				}
			}
			else{
				var numColSpan;
				var numRowSpan;
				
				var numCellIndex=objBaseTD.cellIndex;
				var numRowIndex=objBaseTR.rowIndex;
				
				var numRows=objTable.rows.length;
				var numTempRows=0;
				for(var numH=0;numH<numRows;numH++){
					if(numH!=numRowIndex){
						var objTempTR=objBaseTable.rows(numH);
						var numTempCells=objTempTR.cells.length;
						if(numCellIndex<=numTempCells){
							var objTempTD=objTempTR.cells(numCellIndex);
							numTempRows+=objTempTD.rowSpan;
						}
						else numTempRows++;
					}
				}
				numRowSpan=numRows-numTempRows;
				
				var numNewRowIndex;
				if(numRowIndex==numRows-1)numNewRowIndex=numRowIndex-1;
				else numNewRowIndex=numRowIndex+1;
				var objNewTR=objBaseTable.rows(numNewRowIndex);
				var numCols=EditorTableGetCols(objNewTR.cells(0));
				
				var numNowCols=EditorTableGetCols(objBaseTD)-objBaseTD.colSpan;
				
				numColSpan=numCols-numNowCols;
				
				objBaseTD.colSpan=numColSpan;
				objBaseTD.rowSpan=numRowSpan;
			}
		}
	}
}
//设置颜色
ETSOOEditor.SetColor=function(strColor,strId){
	var objTarget=this.GetObj(strId);
	if(objTarget){
		objTarget.nextSibling.style.backgroundColor=strColor;
		this.MouseClick(objTarget);
	}
}
//获取对象
ETSOOEditor._GetEventObj=function(objEvent){
	if(objEvent)return (objEvent.srcElement)?objEvent.srcElement:objEvent.target;
}
//获取活动编辑域
ETSOOEditor._GetActiveField=function(strId){
	var numPos=strId.indexOf("ETSOOEditorFrame_");
	if(numPos==0)strId=strId.substr(17);
	var objOne=this.Fields[strId];
	if(objOne!=null)this.ActiveField=objOne;
	return objOne;
}
//编辑域获得焦点
ETSOOEditor._FrameOnFocus=function(objEvent){
	var objTarget=ETSOOEditor._GetEventObj(objEvent);
	var objActive=ETSOOEditor._GetActiveField(objTarget.id);
	if(objActive&&ETSOOEditor.Browser>100)objActive.History.Add();
	ETSOOEditor._DocOnSelectionChange(objEvent);
}
//编辑域失去焦点
ETSOOEditor._FrameOnBlur=function(numType){
	ETSOOEditor._SaveContent();
	if(ETSOOEditor.Browser>100){
		var objActive=ETSOOEditor.ActiveField;
		if(objActive)objActive.History.Add(1);
	}
}
//保存内容到隐藏文本框
ETSOOEditor._SaveContent=function(strName,numType){
	var objField;
	if(strName!=null)objField=this.Fields[strName];
	else{
		objField=ETSOOEditor.ActiveField;
		numType=1;
	}
	if(objField&&objField.FrameWindow.document.body){
		if(objField.TextArea.style.display=="none"){
			var strContent=objField.FrameWindow.document.body.innerHTML;
			if(ETSOOEditor.Browser>100)strContent=this.GetRelativePath(strContent);
			objField.TextArea.value=strContent;
		}
		else if(numType==1)objField.FrameWindow.document.body.innerHTML=objField.TextArea.value;
	}
}
//表单提交
ETSOOEditor._FormOnSubmit=function(objEvent){
	var objTextArea=ETSOOEditor._GetEventObj(objEvent).getElementsByTagName("textarea");
	var numLen=objTextArea.length;
	for(var numI=0;numI<numLen;numI++){
		var objOne=objTextArea[numI];
		if(objOne.className=="SaveData"){
			ETSOOEditor._SaveContent(objOne.name);
		}
	}
}
//编辑域点击
ETSOOEditor._DocOnClick=function(objEvent){
	ETSOOPopup.HideFrame();
}
//编辑域鼠标弹起
ETSOOEditor._DocMouseUp=function(objEvent){
	if(ETSOOEditor.Browser==105.5)window.ETSOOEditorSavedRange=document.selection.createRange().duplicate();
	ETSOOEditor._DocOnSelectionChange(objEvent);
	var objField=ETSOOEditor.ActiveField;
	if(objField){
		var objDiv=objField.Div;
		if(ETSOOEditor.MenuBar&&objDiv.getAttribute("ContentType")!=1&&(objDiv.previousSibling==null||objDiv.previousSibling.id!="ETSOOEditor")){
			objDiv.parentNode.insertBefore(ETSOOEditor.MenuBar,objDiv);
			ETSOOEditor._SetShow("EEForeColor");
			ETSOOEditor._SetShow("EEBgColor");
		}
	}
}
//编辑域双击
ETSOOEditor._DocOnDblClick=function(objEvent){
	if(objEvent==null)return false;
	var objField=ETSOOEditor.ActiveField;
	if(objField.Mode!="Design")return;
	var objE=ETSOOEditor._GetEventObj(objEvent);
	ETSOOEditor.InsertObj(objE.nodeName,objE);
}
//编辑域按键
ETSOOEditor._DocOnKeyPress=function(objEvent){
	ETSOOPopup.HideFrame();
	if(objEvent==null)return;
	if(objEvent.ctrlKey){
		var numKeyCode=objEvent.keyCode;
		var objActive=ETSOOEditor.ActiveTarget;
		var objField=ETSOOEditor.ActiveField;
		var objDoc=objField.FrameWindow.document;
		var blnSet=true;
		var numBrowser=ETSOOEditor.Browser;
		switch(numKeyCode){
			//F-Find, F-Find, X-Cut, V-Paste, C-Copy, D-Delete
			//M-Image, G-Face, B-Bold, I-Italic, U-Underline, L-Left, E-Center, R-Right
			case 13: //回车
				var objTextArea=objField.TextArea;
				var objForm=objTextArea.form;
				if(objForm){
					var blnOK=true;
					ETSOOEditor._SaveContent();
					if(objForm.onsubmit)blnOK=objForm.onsubmit();
					if(blnOK)objForm.submit();
				}
				break;
			case 69: //E
				objDoc.execCommand(CMD_CENTER,UI_DEFAULT,null);
				if(numBrowser>100)objField.History.Add();
				break;
			case 71: //G
				ETSOOEditor.InsertObj("FACE");
				break;
			case 75: //K
				var objE;
				if(objActive.tagName=="A")objE=objActive;			
				ETSOOEditor.InsertObj("A",objE);
				break;		
			case 76: //L
				objDoc.execCommand(CMD_LEFT,UI_DEFAULT,null);
				if(numBrowser>100)objField.History.Add();
				break;
			case 77: //M
				var objE;
				if(objActive.tagName=="IMG")objE=objActive;
				ETSOOEditor.InsertObj("IMG",objE);
				break;
			case 82: //R
				objDoc.execCommand(CMD_RIGHT,UI_DEFAULT,null);
				if(numBrowser>100)objField.History.Add();
				break;
			case 89: //Y
				if(numBrowser>100)objField.History.Go(1);
				else objDoc.execCommand(CMD_REDO,UI_DEFAULT, null);
				break;
			case 90: //Z
				if(numBrowser>100)objField.History.Go(-1);
				else objDoc.execCommand(CMD_UNDO,UI_DEFAULT, null);
				break;
			case 189: //-
			case 109:
				if(numBrowser<100)break;
				var objDecrease=ETSOOEditor._GetNamedDiv(objField.Div,"Decrease");
				if(objDecrease)ETSOOEditor.MouseClick(objDecrease);
				break;
			case 187:
			case 107:
				if(numBrowser<100)break;
				var objIncrease=ETSOOEditor._GetNamedDiv(objField.Div,"Increase");
				if(objIncrease)ETSOOEditor.MouseClick(objIncrease);				
				break;
			default:
				blnSet=false;
		}
		if(blnSet){
			ETSOOEditor._FrameOnBlur();
			ETSOOEditor.CancelBubble(objEvent);
			return false;
		}
	}
}
//获得指定名称的Div
ETSOOEditor._GetNamedDiv=function(objDiv,strName){
	var arrDivs=objDiv.getElementsByTagName("div");
	var numLen=arrDivs.length;
	for(var numI=0;numI<numLen;numI++){
		var objOne=arrDivs[numI];
		if(objOne.getAttribute("name")==strName)return objOne;
	}
}
//编辑域右键菜单
ETSOOEditor._DocOnContextMenu=function(objEvent){
	if(ETSOOEditor.MenuBar==null)return false;
	ETSOOEditor._DocOnSelectionChange(objEvent);
	if(objEvent==null)return;
	var objField=ETSOOEditor.ActiveField;
	if(objField.Mode!="Design")return;
	var arrPos=ETSOOGetPos(objField.FrameDocument);
	var numLeft=objEvent.clientX+arrPos[0],numTop=objEvent.clientY+arrPos[1];
	var objPopup=new ETSOOPopup();
	var strPath=ETSOOEditor.Path;
	objPopup.BgColor=objField.BgColor;
	objPopup.Skin=strPath+"Skins/"+ETSOOEditor.ActiveField.Skin+"/Popup.css";
	var arrSubMenu=ETSOOEditor._GetMenuItem(objEvent);
	var arrMenus=ETSOOEditor.GetSubMenu(arrSubMenu);
	var strContent=arrMenus[0];
	objPopup.Height=arrMenus[1]*24+arrMenus[2]*6+4;
	if(window.createPopup==null){
		objPopup.URL=strPath+"Dialogs/ContextMenu.htm";
	}
	objPopup.Content=strContent;
	objPopup.Left=numLeft;
	objPopup.Top=numTop;
	objPopup.Show();
	ETSOOEditor.CancelBubble(objEvent);
	return false;
}
//取消冒泡
ETSOOEditor.CancelBubble=function(objEvent){
	if(ETSOOEditor.Browser>100)objEvent.cancelBubble=true;
	else objEvent.preventDefault();
}
//动态获取对象
ETSOOEditor._GetMenuItem=function(objEvent){
	var objLangs=this.Langs;
	var arrItems=new Array("SelectAll",objLangs["SelectAll"],"PasteWord",objLangs["Paste"]);
	var objCut=this.GetObj("EECut");
	if(objCut&&objCut.className!="Disabled"){
		arrItems=arrItems.concat("NewLine","","Cut",objLangs["Cut"],"Copy",objLangs["Copy"],"Delete",objLangs["Delete"]);
	}
	var objE=this._GetEventObj(objEvent);
	if(objE.nodeName=="BODY"&&this.Browser>100){
		var objRange=this.ActiveField.FrameWindow.document.selection.createRange();
		if(objRange.length!=null)objE=objRange(0);
	}
	this.ActiveTarget=objE;
	var strNodeName=objE.nodeName;
	var strType=objE.type;
	if(strNodeName=="OBJECT"){
		if(objE.Movie)strType="Flash";
		else strType="Media";
	}
	if(this.GetWordArt())strNodeName="ART";
	var arrAdd=this.InsertObj(strNodeName,1,strType);
	var numLen=arrAdd.length;
	if(numLen>0){

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -