📄 simpleetsooeditor.js
字号:
break;
}
if(blnAdd){
objE=this.ActiveTarget;
var objT;
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;
}
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=this.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;
}
}
}
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();
objPopup.BgColor=objField.BgColor;
var strPath=ETSOOEditor.Path;
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";
}
var arrAdd=this.InsertObj(strNodeName,1,strType);
var numLen=arrAdd.length;
if(numLen>0){
arrItems=arrItems.concat("NewLine","");
arrItems=arrItems.concat(arrAdd);
}
return arrItems;
}
ETSOOEditor._DocOnPaste=function(){
if(ETSOOEditor.AutoClearWord){
var strHtml=ETSOOEditor._GetSavedHTML();
var regWord=/<\w[^>]* class="?MsoNormal"?/gi;
if(regWord.test(strHtml)){
ETSOOEditor._ClearAndInsertWordHtml(strHtml);
return false;
}
}
}
ETSOOEditor._GetSavedHTML=function(){
var strHtml;
if(ETSOOEditor.Browser>=105.5){
var objDiv=document.getElementById("ETSOOEditorTempleData");
objDiv.innerHTML="";
var objRange=document.body.createTextRange();
objRange.moveToElementText(objDiv);
objRange.execCommand("Paste");
strHtml=objDiv.innerHTML;
objDiv.innerHTML="";
}else if(window.clipboardData){
strHtml=window.clipboardData.getData("Text");
if(strHtml==null)strHtml="";
strHtml=strHtml.replace(/\n\n/gi,"<p>");
strHtml=strHtml.replace(/\n/gi,"<br>");
strHtml=strHtml.replace(/( ){2}/gi," ");
strHtml=strHtml.replace(/( ){5,}/gi," " );
}
return strHtml;
}
ETSOOEditor._ClearAndInsertWordHtml=function(strHtml){
strHtml=strHtml.replace(/<\/?SPAN[^>]*>/gi,"");
strHtml=strHtml.replace(/<(\w[^>]*)\s+class=([^ |>]*)([^>]*)/gi,"<$1$3");
strHtml=strHtml.replace(/<(\w[^>]*)\s+style="([^"]*)"([^>]*)/gi,"<$1$3");
strHtml=strHtml.replace(/<(\w[^>]*)\s+lang=([^ |>]*)([^>]*)/gi,"<$1$3");
strHtml=strHtml.replace(/<\\?\?xml[^>]*>/gi,"");
strHtml=strHtml.replace(/<\/?\w+:[^>]*>/gi,"");
strHtml=strHtml.replace(/( ){5,}/gi," " );
this.InsertHTML(strHtml);
}
ETSOOEditor._DocOnSelectionChange=function(strAction,strAdd){
if(ETSOOEditor.ReadyState==0)return;
if(!ETSOOEditor.ActiveStatus)return;
var arrObj=ETSOOEditor.GetRange();
if(arrObj==null)return false;
var objBody=arrObj[1];
var objSelection=arrObj[2];
var objRange=arrObj[3];
var objTarget,numType=0;
var numAbsPos=0,numCut=0;
var numBrowser=ETSOOEditor.Browser;
if(objRange){
if(objRange.length==null){
objTarget=objRange.parentElement();
if(objTarget){
var numNodeType=objTarget.nodeType;
var strText=objRange.text;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -