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

📄 popup.js

📁 TurboCWCShop v1.6.7 is make in the Utility-LAYer Framework.
💻 JS
字号:
//Popup窗口类
function ETSOOPopup(strTarget,numWidth,numHeight,numLeft,numTop,numAdjustWidth,numAdjustHeight){
	if(strTarget==null)strTarget="ETSOOPopupFrame";
	if(numWidth==null)numWidth=150;
	if(numHeight==null)numHeight=300;
	if(numAdjustWidth==null)numAdjustWidth=0;
	if(numAdjustHeight==null)numAdjustHeight=0;
	this.Target=strTarget; //目标窗口,必须定义名称和id为同一名称
	this.Width=numWidth; //宽度
	this.Height=numHeight; //高度
	this.AdjustWidth=numAdjustWidth; //调整宽度
	this.AdjustHeight=numAdjustHeight; //调整高度
	this.Left=numLeft;
	this.SourceObject=null; //源对象
	this.Top=numTop;
	this.Direction=0; //向下,1为向上
	this.Content=""; //Body中的内容
	this.Hold=1; //是否保持
	this.Keep=0; //是否保持焦点
	this.URL=""; //起用网址
	this.URLContent=""; //起用网址内容
	this.Skin=null; //皮肤
	this.ShowBar=true; //显示Bar
	this.Path=""; //相对路径
	this.BgColor=""; //背景颜色,为空时不指定
	this.Popup=(window.createPopup&&document.implementation); //是否显示为Popup
}
//获取中间位置
ETSOOPopup._GetCenter=function(numWidth,numHeight,numTopUp){
	var numLeft=(window.screen.width-numWidth)/2;
	var numTop=(window.screen.height-numHeight)/2-numTopUp;
	return [numLeft,numTop];
}
//显示窗口
ETSOOPopup.prototype.Show=function(numType){
	var numHold=this.Hold;
	ETSOOPopup.Hold=numHold;
	var numKeep=this.Keep;
	ETSOOPopup.Keep=numKeep;
	var strSkin=this.Skin;
	ETSOOPopup.Skin=strSkin;
	var numLeft=this.Left;
	var numTop=this.Top;
	var numWidth=this.Width;
	var numHeight=this.Height;
	var numAdjustWidth=this.AdjustWidth;
	var numAdjustHeight=this.AdjustHeight;
	var arrCenters=ETSOOPopup._GetCenter(numWidth,numHeight,100);
	var blnPopup=this.Popup;
	if(numLeft==null){
		numLeft=arrCenters[0];
	}
	if(numTop==null){
		numTop=arrCenters[1];
	}
	var numBodyWidth=document.body.clientWidth+document.body.scrollLeft;
	var numBodyHeight=document.body.clientHeight+document.body.scrollTop;
	if(numLeft+numWidth>numBodyWidth)numLeft=numLeft-numWidth+numAdjustWidth;
	if(numTop+numHeight>numBodyHeight)numTop=numTop-numHeight-numAdjustHeight;
	if(numLeft<0)numLeft=0;
	if(numTop<0)numTop=0;
	var strContent=this.Content;
	var strBgColor=this.BgColor;
	if(strBgColor=="")strBgColor="#FFFFFF";
	var strPage='<html><head>';
	strPage+='<style type="text/css">';
	strPage+='.ColorBlock{cursor:pointer;border:1px solid '+strBgColor+';cursor:hand;}';
	strPage+='</style>';
	strPage+='<link rel="stylesheet" href="'+strSkin+'">';
	strPage+='</head><body';
	if(!blnPopup)strPage+=' oncontextmenu="return false" onmouseout="parent.ETSOOPopup.HideHoldFrame()"';
	if(numType==null)strPage+=' scroll="no"';
	if(strBgColor)strPage+=' bgcolor="'+strBgColor+'"';
	strPage+='><table border="0" width="100%" height="100%" cellspacing="0" cellpadding="0"><tr>';
	if(this.ShowBar)strPage+='<td class="Bar" width="20"></td>';
	strPage+='<td valign="top" style="padding:1px"><table border="0" width="100%"cellspacing="0" cellpadding="0">';
	strPage+=strContent;
	strPage+='</table></td></tr></table></div>';
	strPage+='</body></html>';
	ETSOOPopup.ActiveOne=this;
	if(blnPopup){
		numLeft-=document.body.scrollLeft;
		numTop-=document.body.scrollTop;
		var objWin=window.createPopup();
		this.FrameWindow=objWin;
		with(objWin.document){
			open();
			write(strPage);
			close();
		}
		objWin.show(numLeft,numTop,numWidth,numHeight,document.body);
	}else{
		var strTarget=this.Target;
		var objFrameDoc=document.getElementById(strTarget);
		if(objFrameDoc==null){
			var objSpan=document.createElement("span");
			objSpan.innerHTML='<iframe scrolling="no" id="ETSOOPopupFrame" name="ETSOOPopupFrame" marginwidth="0" marginheight="0" border="0" frameborder="0" style="display:none;"></iframe>';
			objSpan=document.body.appendChild(objSpan);
			objFrameDoc=objSpan.firstChild;
		}
		var objFrameWin=window.frames[strTarget];
		this.FrameWindow=objFrameWin;
		if(objFrameDoc.style.display!="none")return false;
		this.FrameDocument=objFrameDoc;
		ETSOOPopup.Target=strTarget;
		var strUrl=this.URL;
		if(strUrl==""){
			with(objFrameWin.document){
				open();
				write(strPage);
				close();
			}
		}else{
			this.URLContent=strPage;
			objFrameWin.location=strUrl;
		}
		with(objFrameDoc.style){
			position="absolute";
			zIndex=10000;
			left=numLeft+"px";
			top=numTop+"px";
			width=numWidth+"px";
			height=numHeight+"px";
			if(strUrl=="")display="block";
		}
	}
}
//是否在亿速编辑器环境,不在,定一个空对象。
if(typeof(ETSOOEditor)=="undefined")ETSOOEditor=function(){};
//定义基础颜色
ETSOOPopup.prototype.BasicColors=[
	'#000000','#FFFFFF','#008000','#800000','#808000','#000080','#800080','#808080',
	'#FFFF00','#00FF00','#00FFFF','#FF00FF','#C0C0C0','#FF0000','#0000FF','#008080'
];
//处理函数名,自动传递两个参数strColor和strSourceId
ETSOOPopup.prototype.DoFunction=null;
//对象唯一id;
ETSOOPopup.prototype.SourceId="";
//默认颜色
ETSOOPopup.prototype.DefaultColor="#000000";
//获取调整了的高度
function ETSOOGetAdjustHeight(numH){
	var strApp=navigator.appMinorVersion;
	if(strApp&&(strApp.indexOf("SP2")!=-1||strApp.indexOf("SP1")!=-1))numH+=24;
	return numH;
}
//显示颜色窗口
ETSOOPopup.prototype.ShowColorPallette=function(langDefault,langMore,strLanguage,strCharset){
	if(langDefault==null)langDefault="Default";
	if(langMore==null)langMore="More...";
	var strFun=this.DoFunction;
	var strId=this.SourceId;
	var strDefaultColor=this.DefaultColor;
	var strPallette='';
	strPallette+='<tr><td id="IdPad" onmouseover="this.className=\'PalletteHover\'" onmouseout="this.className=\'ColorBlock\'" onclick="parent.'+strFun+'(\''+strDefaultColor+'\',\''+strId+'\');parent.ETSOOPopup.HideFrame(1)" class="ColorBlock">';
	strPallette+='<table width="100%" class="PalletteDefault"><tr><td width="20px"><div class="PallettePart" style="background-color:'+strDefaultColor+'"></div></td><td align="center" valign="middle">'+langDefault+'</td></tr></table></td></tr>';
	strPallette+='<tr><td><table width="100%"><tr>';
	var arrBasicColors=this.BasicColors;
	var numLen=arrBasicColors.length;
	for(var numI=0;numI<numLen;numI++){
		if(numI>0&&numI%8==0)strPallette+='</tr><tr>';
		var strColor=arrBasicColors[numI];
		strPallette+='<td id="IdPad" onmouseover="this.className=\'PalletteHover\'" onmouseout="this.className=\'ColorBlock\'" onclick="parent.'+strFun+'(\''+strColor+'\',\''+strId+'\');parent.ETSOOPopup.HideFrame(1)" class="ColorBlock"><div class="PallettePart" style="background-color:'+strColor+'"></div></td>';
	}
	strPallette+='</tr></table></td></tr>';
	strPallette+='<tr><td id="IdPad" onmouseover="this.className=\'PalletteHover\'" onmouseout="this.className=\'ColorBlock\'" onclick="parent.ETSOOPopup.ShowMoreColor()" class="ColorBlock"><table width="100%"><tr><td align="center" valign="middle">'+langMore+'</td></tr></table></td></tr>';
	this.Content=strPallette;
	this.ShowBar=false;
	var numWidth=230,numHeight=131;
	if(window.Node){
		numWidth=248,numHeight=133;
	}
	var numAdjustWidth=this.AdjustWidth;
	var numAdjustHeight=this.AdjustHeight;
	numWidth+=numAdjustWidth;
	numHeight+=numAdjustHeight;
	this.Width=numWidth;
	this.Height=numHeight;
	this.Show();
	//如果编辑器为空对象,模拟实际对象,需要Utility.js支持
	if(ETSOOEditor.ActiveField==null){
		if(strLanguage==null)strLanguage="zh-cn";
		if(strCharset==null)strCharset="gb2312";
		var objScript=document.getElementsByTagName("script")[0];
		var objNew=document.createElement("script");
		objNew.src=this.Path+"Languages/"+strLanguage+"/System.js";
		objScript.parentNode.insertBefore(objNew,objScript);
		ETSOOEditor._GetCharset=function(){return strCharset};
		ETSOOEditor.GetObj=function(strId){return null};
		ETSOOEditor._GetEventObj=function(objEvent){return ETSOOGetEventObj(objEvent)};
		ETSOOEditor.Browser=ETSOOGetBrowserVersion();
		ETSOOEditor.ActiveField=function(){};
		ETSOOEditor.ActiveField.Skin="System";
		ETSOOEditor.ActiveField.BgColor=this.BgColor;
		ETSOOEditor.ActiveField.Language=strLanguage;
		window.ETSOOEditor=ETSOOEditor;
	}
}
//显示更多颜色
ETSOOPopup.ShowMoreColor=function(){
	var objOne=ETSOOPopup.ActiveOne;
	if(objOne){
		ETSOOPopup.HideFrame(1);
		var numW=600;
		var numH=280;
		numH=ETSOOGetAdjustHeight(numH);
		var strUrl=objOne.Path+"Dialogs/Color.htm";
		var arrArgs=[self,objOne];
		ETSOOPopup.Open(strUrl,arrArgs,numW,numH,1);
	}
}
//隐藏窗口
ETSOOPopup.HideFrame=function(numForce){
	var objOne=ETSOOPopup.ActiveOne;
	if(objOne){
		if(objOne.Popup){
			objOne.FrameWindow.hide();
			ETSOOPopup.ActiveOne=null;
		}
		else{
			var objFrameDoc=objOne.FrameDocument;
			if(objFrameDoc&&objFrameDoc.style.display!="none"&&(ETSOOPopup.Keep==0||numForce==1)){
				objFrameDoc.style.display="none";
				ETSOOPopup.ActiveOne=null;
			}
		}
	}
}
//隐藏浮动窗口
ETSOOPopup.HideHoldFrame=function(){
	if(ETSOOPopup.Hold==0){
		ETSOOPopup.HideFrame();
		ETSOOPopup.ActiveOne=null;
	}
}
//定义事件
ETSOOPopup.AddEvent=function(strTarget){
	ETSOOPopup._SetAddEvent(window);
	var numLen=window.frames.length;
	for(var numI=0;numI<numLen;numI++){
		var objWin=window.frames[numI];
		if(objWin.name!=strTarget)ETSOOPopup._SetAddEvent(objWin);
	}
}
ETSOOPopup._SetAddEvent=function(objWin){
	if(navigator.language==null){
		objWin.document.attachEvent("onmousedown",ETSOOPopup.HideFrame);
	}else{
		objWin.addEventListener('mousedown',ETSOOPopup.HideFrame,true);
	}
}
//全局变量
ETSOOPopup.Target="ETSOOPopupFrame";
ETSOOPopup.ActiveOne=null;
ETSOOPopup.Hold=1;
ETSOOPopup.Keep=0;
ETSOOPopup.Skin=null;
ETSOOPopup.Dragging=0;
ETSOOPopup.DragPos=[];
//辅助函数
ETSOOPopup.BarMouseDown=function(objEvent){
	ETSOOPopup.Dragging=1;
	ETSOOPopup.DragPos=[objEvent.clientX,objEvent.clientY];
}
ETSOOPopup.BarMouseMove=function(objEvent){
	if(ETSOOPopup.Dragging==1){
		var objActiveOne=ETSOOPopup.ActiveOne;
		if(objActiveOne){
			var objDoc=objActiveOne.FrameDocument;
			var numLeft=parseInt(objDoc.style.left);
			var numTop=parseInt(objDoc.style.top);
			var numNewX=objEvent.clientX;
			var numNewY=objEvent.clientY;
			var numBaseX=ETSOOPopup.DragPos[0];
			var numBaseY=ETSOOPopup.DragPos[1];
			var numNewLeft=numLeft+numNewX-numBaseX;
			if(numNewLeft<0)numNewLeft=0;
			var numNewTop=numTop+numNewY-numBaseY;
			if(numNewTop<0)numNewTop=0;
			with(objDoc.style){
				left=numNewLeft+"px";
				top=numNewTop+"px";
			}
			ETSOOPopup.DragPos[numNewX,numNewY];
		}
	}
}
ETSOOPopup.BarMouseUp=function(objEvent){
	ETSOOPopup.BarMouseMove(objEvent);
	ETSOOPopup.Dragging=0;
	ETSOOPopup.DragPos=[];
}
ETSOOPopup.BarMouseOut=function(objEvent){
	ETSOOPopup.BarMouseUp(objEvent);
}
ETSOOPopup.SetDragable=function(objE){
	if(navigator.language==null){
		objE.attachEvent("onmousedown",ETSOOPopup.BarMouseDown);
		objE.attachEvent("onmousemove",ETSOOPopup.BarMouseMove);
		objE.attachEvent("onmouseout",ETSOOPopup.BarMouseOut);
		objE.attachEvent("onmouseup",ETSOOPopup.BarMouseUp);
	}else{
		objE.addEventListener('mousedown',ETSOOPopup.BarMouseDown,true);
		objE.addEventListener('mousemove',ETSOOPopup.BarMouseMove,true);
		objE.addEventListener('mouseup',ETSOOPopup.BarMouseUp,true);
		objE.addEventListener('mouseout',ETSOOPopup.BarMouseOut,true);
	}
}
ETSOOPopup.Open=function(strUrl,arrArgs,numWidth,numHeight,numType,arrControl){
	var arrCenters=ETSOOPopup._GetCenter(numWidth,numHeight,100);
	if(arrControl==null)arrControl=["no","no"];
	var strWinArgs="left="+arrCenters[0]+",top="+arrCenters[1]+",width="+numWidth+",height="+numHeight+",resizable="+arrControl[0]+",scrollbars="+arrControl[1]+",status=no";
	var strDialogArgs="scrollbars="+arrControl[1]+",center=yes;dialogHeight="+numHeight+"px;dialogWidth="+numWidth+"px;help=no;status=no;resizable="+arrControl[0];
	var objWin;
	if(window.Node||numType==-1){
		objWin=window.open("","",strWinArgs);
	}else{
		if(numType==1)showModalDialog(strUrl,arrArgs,strDialogArgs);
		else showModelessDialog(strUrl,arrArgs,strDialogArgs);
	}
	if(objWin){
		if(objWin.opener==null)objWin.opener=self;
		objWin.dialogArguments=arrArgs;
		window.ETSOOArgumentsSaved=arrArgs;
		if(window.Node){
			if(strUrl.indexOf("http://")!=0&&strUrl.indexOf("/")==0)strUrl="http://"+document.domain+(document.location.port==""?"":":"+document.location.port)+"/"+strUrl;
		}
		objWin.location.href=strUrl;
	}
}

⌨️ 快捷键说明

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