📄 etsooeditor.js
字号:
return objArt;
}
//插入可操作对象
ETSOOEditor.InsertObj=function(strTagName,objE,_Add){
var strPage,numWidth,numHeight,arrAdd=[],blnAdd=false;
var objLangs=this.Langs;
if(objE==1){
blnAdd=true;
objE=null;
}else{
if(objE&&objE.nodeName!=strTagName){
if((strTagName=="OBJECT"&&objE.nodeName=="EMBED")||strTagName=="SPLITCELL"){}
else objE=null;
}else if(strTagName=="CONTROL"||strTagName=="CSS"||strTagName=="IMAGELINK")objE=this.ActiveTarget;
else if(strTagName=="ART")objE=this.GetWordArt();
}
var numType=1,strDAdd;
switch(strTagName){
case "IMG":
if(blnAdd)arrAdd=["Image",objLangs["ImageProperty"]];
else{
strPage="Image.htm", numWidth=720, numHeight=400;
}
break;
case "MARQUEE":
if(blnAdd)arrAdd=["Marquee",objLangs["MarqueeProperty"]];
else{
strPage="Marquee.htm", numWidth=420, numHeight=380;
}
break;
case "OBJECT":
case "EMBED":
if(_Add=="Flash"||_Add=="application/x-shockwave-flash"){
if(blnAdd)arrAdd=["Flash",objLangs["FlashProperty"]];
else{
strPage="Flash.htm", numWidth=720, numHeight=450;
}
}else if(_Add=="Media"){
if(blnAdd)arrAdd=["Media",objLangs["MediaProperty"]];
else{
strPage="Media.htm", numWidth=720, numHeight=450;
}
}else if(objE){
var strSrc;
if(strNodeName=="EMBED")strSrc=objE.src;
else strSrc=objE.Movie;
if(strSrc!=null&&strSrc.toLowerCase().indexOf(".swf")!=-1){
if(blnAdd)arrAdd=["Flash",objLangs["FlashProperty"]];
else{
strPage="Flash.htm", numWidth=720, numHeight=450;
}
}else if(objE.URL||objE.Controls){
if(blnAdd)arrAdd=["Media",objLangs["MediaProperty"]];
else{
strPage="Media.htm", numWidth=720, numHeight=450;
}
}
}
break;
case "TABLE":
if(blnAdd)arrAdd=["Table",objLangs["TableProperty"]];
else{
strPage="Table.htm", numWidth=500, numHeight=412;
}
break;
case "TD":
if(blnAdd)arrAdd=["CellProperty",objLangs["CellProperty"],"SplitCell",objLangs["SplitCell"],"InsertRow",objLangs["InsertRow"]];
else{
strPage="TableCell.htm", numWidth=420, numHeight=380;
}
break;
case "SPLITCELL":
if(!blnAdd){
strPage="TableCellSplit.htm", numWidth=240, numHeight=160;
}
break;
case "FORM":
if(blnAdd)arrAdd=["Form",objLangs["FormProperty"]];
else{
strPage="Form.htm", numWidth=400, numHeight=228;
}
break;
case "INPUT":
var strType;
if(blnAdd)strType=_Add;
else if(_Add)strType=_Add.substr(6).toLowerCase();
else if(objE)strType=objE.type;
var strAddId;
switch(strType){
case "image":
strAddId="FormImage";
if(blnAdd)arrAdd=[strAddId,objLangs[strAddId+"Property"]];
else{
strPage="Image.htm", numWidth=720, numHeight=420, strDAdd=2;
}
break;
case "radio":
strAddId="FormRadio";
case "checkbox":
if(strAddId==null)strAddId="CheckBox";
if(blnAdd)arrAdd=[strAddId,objLangs[strAddId+"Property"]];
else{
strPage="FormRadio.htm", numWidth=360, numHeight=200, strDAdd=strType;
}
break;
case "file":
strAddId="FormFile";
case "text":
case "password":
if(strAddId==null)strAddId="FormText";
if(blnAdd)arrAdd=[strAddId,objLangs[strAddId+"Property"]];
else{
strPage="FormText.htm", numWidth=360, numHeight=190, strDAdd=strType;
}
break;
case "button":
case "submit":
case "reset":
strAddId="FormButton";
if(blnAdd)arrAdd=[strAddId,objLangs[strAddId+"Property"]];
else{
strPage="FormButton.htm", numWidth=360, numHeight=170;
}
break;
}
break;
case "TEXTAREA":
if(blnAdd)arrAdd=["FormTextArea",objLangs["FormTextAreaProperty"]];
else{
strPage="FormTextArea.htm", numWidth=360, numHeight=264;
}
break;
case "SELECT":
if(blnAdd)arrAdd=["FormSelect",objLangs["FormSelectProperty"]];
else{
strPage="FormSelect.htm", numWidth=400, numHeight=336;
}
break;
case "LABEL":
if(blnAdd)arrAdd=["FormLabel",objLangs["FormLabelProperty"]];
else{
strPage="FormLabel.htm", numWidth=360, numHeight=170;
}
break;
case "IFRAME":
if(blnAdd)arrAdd=["InsertFile",objLangs["InsertFileProperty"]];
else{
strPage="IFrame.htm", numWidth=500, numHeight=360;
}
break;
case "FACE":
strPage="Face.htm", numWidth=600, numHeight=420,numType=0;
break;
case "FIND":
strPage="Find.htm", numWidth=412, numHeight=200, numType=0;
break;
case "SPECIAL":
strPage="Special.htm", numWidth=600, numHeight=270,numType=0;
break;
case "ANCHOR":
strPage="Anchor.htm", numWidth=360, numHeight=320;
break;
case "A":
if(blnAdd)arrAdd=["Link",objLangs["LinkProperty"]];
else{
strPage="Link.htm", numWidth=420, numHeight=280,strDAdd=_Add;
}
break;
case "IMAGELINK":
strPage="Area.htm", numWidth=640, numHeight=560;
break;
case "CONTROL":
strPage="Attribute.htm", numWidth=428, numHeight=480;
break;
case "CSS":
strPage="Css.htm", numWidth=640, numHeight=580;
break;
case "ART":
if(blnAdd)arrAdd=["Art",objLangs["ArtProperty"],"ClearArt",this.OtherLangs[6]];
else{
strPage="Art.htm", numWidth=600, numHeight=400;
}
break;
case "ABOUT":
strPage="http://www.etsoo.com/Products/EOEditor/About.asp?d="+document.domain, numWidth=510, numHeight=260;
break;
case "HELP":
strPage="http://www.etsoo.com/Products/EOEditor/", numWidth=640, numHeight=480, numType=-1;
break;
}
if(blnAdd){
objE=this.ActiveTarget;
var objT;
if(strTagName!="TABLE"){
objT=this.GetTarget(objE,"TABLE");
if(objT){
arrAdd=arrAdd.concat(["TableProperty",objLangs["TableProperty"]]);
}
}
if(strTagName!="TD"){
objT=this.GetTarget(objE,"TD");
if(objT){
arrAdd=arrAdd.concat(["CellProperty",objLangs["CellProperty"]]);
}
}
if(strTagName!="FORM"){
objT=this.GetTarget(objE,"FORM");
if(objT){
arrAdd=arrAdd.concat(["Form",objLangs["FormProperty"]]);
}
}
if(strTagName!="MARQUEE"){
objT=this.GetTarget(objE,"MARQUEE");
if(objT){
arrAdd=arrAdd.concat(["Marquee",objLangs["MarqueeProperty"]]);
}
}
if(strTagName!="A"){
objT=this.GetTarget(objE,"A");
if(objT){
arrAdd=arrAdd.concat(["Link",objLangs["LinkProperty"]]);
}
}
return arrAdd;
}
else if(strPage){
var arrControl=[0,0];
if(strPage.indexOf("http://")==-1)strPage=this.Path+"Dialogs/"+strPage;
else arrControl=[1,1];
var arrArgs=[self,objE,strDAdd];
window.ETSOOSavedArguments=arrArgs;
ETSOOPopup.Open(strPage,arrArgs,numWidth,ETSOOGetAdjustHeight(numHeight),numType,arrControl);
}
else return false;
}
//获取TDS
ETSOOEditor.GetTDs=function(){
var objField=this.ActiveField;
var objWindow=objField.FrameWindow;
var objSelection=objWindow.document.selection;
var arrTDs=[];
if(objSelection){
var objRange=objSelection.createRange();
var objParent
var blnAll=false;
if(objRange.length==null)objParent=objRange.parentElement();
else{
objParent=objRange(0);
if(objParent.nodeName=="TABLE")blnAll=true;
}
var objTD=this.GetTarget(objParent,"TD");
if(objTD){
arrTDs=[objTD];
}else{
var objTable=this.GetTarget(objParent,"TABLE");
if(objTable){
var arrTemp=objTable.getElementsByTagName("TD");
var numLen=arrTemp.length;
for(var numI=0;numI<numLen;numI++){
objTemp=arrTemp[numI];
if(this._GetTDsAdd(objSelection,objRange,objTemp,blnAll)){
arrTDs=arrTDs.concat(objTemp);
}
}
}
}
}
return arrTDs;
}
//补充判断
ETSOOEditor._GetTDsAdd=function(objSelection,objRange,objTemp,blnAll){
var blnHave=false;
if(window.Node){
blnHave=objSelection.containsNode(objTemp,true);
}else{
if(!blnAll){
var objCellRange=objRange.duplicate();
objCellRange.moveToElementText(objTemp);
if(objRange.inRange(objCellRange)||(objRange.compareEndPoints('StartToStart',objCellRange)>= 0&&objRange.compareEndPoints('StartToEnd',objCellRange)<= 0)||(objRange.compareEndPoints('EndToStart',objCellRange)>=0&&objRange.compareEndPoints('EndToEnd',objCellRange)<= 0))blnHave=true;
}else{
blnHave=true;
}
}
return blnHave;
}
//进行合规性判断
function EditorTableValid(objTD){
this.Valid==false;
this.TR;
this.Table;
if(objTD){
objTR=ETSOOEditor.GetTarget(objTD,"TR");
if(objTR){
objTable=ETSOOEditor.GetTarget(objTD,"TABLE");
if(objTable){
this.Valid=true;
this.TR=objTR;
this.Table=objTable;
}
}
}
}
//获取表格列数
function EditorTableGetCols(objTD,numMaxCol){
var numCols=0;
var objTR=ETSOOEditor.GetTarget(objTD,"TR");
if(objTR){
if(numMaxCol==null)numMaxCol=objTR.cells.length;
for(var numI=0;numI<numMaxCol;numI++){
numCols+=objTR.cells(numI).colSpan;
}
}
return numCols;
}
//获取表格列数
function EditorTableGetRows(objTD,numMaxRow){
var numRows=0;
var objTable=ETSOOEditor.GetTarget(objTD,"TABLE");
if(objTable){
var numCellIndex=objTD.cellIndex;
if(numMaxRow==null)numMaxRow=objTable.rows.length;
for(var numI=0;numI<numMaxRow;numI++){
var objTempRow=objTable.rows(numI);
var numTempCells=objTempRow.cells.length;
if(numTempCells>=numCellIndex)numRows+=objTempRow.cells(numCellIndex).rowSpan;
else numRow++;
}
}
return numRows;
}
//插入行
function EditorTableInsertRow(numType){
var objTDs=ETSOOEditor.GetTDs();
if(objTDs&&objTDs.length>0){
var objTD=objTDs[0];
var objValid=new EditorTableValid(objTD);
if(!objValid.Valid)return false;
var numCellIndex=objTD.cellIndex;
var objTR=objValid.TR;
var numRowIndex=objTR.rowIndex;
var objTable=objValid.Table;
if(numType==1){
objTR.removeNode(true);
if(objTable.rows.length==0)objTable.removeNode(true);
}
else{
var numCols=EditorTableGetCols(objTD);
var numI=0;
var objNewTR=objTable.insertRow(numRowIndex);
while(numI<numCols)
{
var objTempTD=objTR.cells(numI);
if(objTempTD==null)break;
var numColSpan=objTempTD.colSpan;
var numRowSpan=objTempTD.rowSpan;
numI+=numColSpan;
if(numRowSpan>1)objTempTD.rowSpan+=1;
else
{
var objNewTD=objNewTR.insertCell();
objNewTD.innerHTML=" ";
objNewTD.mergeAttributes(objTempTD);
}
}
}
}
}
//插入列
function EditorTableInsertCol(numType){
var objTDs=ETSOOEditor.GetTDs();
if(objTDs&&objTDs.length>0){
var objTD=objTDs[0];
var objValid=new EditorTableValid(objTD);
if(!objValid.Valid)return false;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -