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

📄 fbox.js

📁 ShopEx网店系统是一款免费的独立网店系统
💻 JS
字号:
var fbox={

	open:function(content,options){

		fbox.options={
			bgcolor:'#000',
			effect:false,
			noClose:true,
			opacity:0.5,
			width:450,
			height:100,
			overflow:''
		}

		if(X.runtime.currentTab != '__F_WIN__'){
			X.runtime.lastNmTab = X.runtime.currentTab;
			X.runtime.currentTab = '__F_WIN__';
		}

		Object.extend(fbox.options, options || {});

		if(!fbox.win){
			fbox.bg = Builder.node('div',{ className:'floatBG',style:'position: absolute;',left:0,height:0 });

			fbox.bg.style.background = fbox.options.bgcolor;

			var baseTop = document.childNodes[1].scrollTop; 
			var baseLeft = document.body.scrollLeft;

			fbox.win = Builder.node('div',{ className:'floatWin'});

			fbox.options.width = Math.min(fbox.options.width,document.body.clientWidth);
			fbox.options.height = Math.min(fbox.options.height,document.body.clientHeight);

			s_left = (document.childNodes[1].clientWidth - fbox.options.width)/2;
			s_top = (document.childNodes[1].clientHeight - fbox.options.height)/3.4;

			if(s_left<=1)
				fbox.win.style.left = s_left*100+'%';
			else
				fbox.win.style.left = s_left+baseLeft + 'px';

			if(s_top<=1)
				fbox.win.style.top = '2%';
			else
				fbox.win.style.top = '20%';

			if(s_left<=1)
				fbox.win.style.width = fbox.options.width*100+'%';
			else
				fbox.win.style.width = fbox.options.width+'px';

			if(s_left<=1)
				fbox.win.style.height = s_left*100+'%';
			else
				fbox.win.style.height = fbox.options.height+'px';


			if(!fbox.options.noClose){
				fbox.win.appendChild(
					Builder.node('div',{className:'handle'},[
						Builder.node('span',{ className:'closeBtn',onClick:'fbox.close()' },['[x]'])
					])
				);
			}

			fbox.body = Builder.node('div',{style:'position: relative;overflow:'+fbox.options.overflow+';height:'+fbox.options.height+'px'});

			fbox.win.appendChild(
				fbox.body
			);

			fbox.bg.style.height = Math.max(document.childNodes[1].scrollHeight,document.body.offsetHeight,document.body.clientHeight)+'px';

			document.body.appendChild(fbox.bg);
			document.body.appendChild(fbox.win);

			if(fbox.options.effect)
				new Effect.Appear(fbox.bg,{from:0,to:fbox.options.opacity})
			else{
				fbox.bg.style.opacity=fbox.options.opacity;
				fbox.bg.style.filter="alpha(opacity="+(fbox.options.opacity*100)+")";
			}

			e = document.getElementsByTagName('select');
			for(i=0;i<e.length;i++){
				fbox.selectElementsStatus[i] = e[i].style.visibility;
				e[i].style.visibility='hidden';
			}
		}
		fbox.body.innerHTML = '';

		if(typeof(content)=='string'){
			fbox.body.appendChild(
				Builder.node('iframe',{border:0,frameborder:"no",framespacing:0,style:'width:100%;border:none;',src:content,className:'floatFrame' })
			);
		}else if(content && content.tagName){
			if(content.parentNode){
				c = content.cloneNode(true);
				c.id = null;
				c.style.display = '';
			} else{
				c = content;
			}

			fbox.body.appendChild(c);
			f = fbox.body.getElementsByTagName('form');
			var fbase={};
			for(var i=0;i<f.length;i++){
				fbase[f[i].getAttribute('name')] = f[i];
				Event.observe(f[i],'submit',X.form.onsubmit);
			}

		}else if(content.act){
			fbox.content = Builder.node('div',{},'loading...');
			fbox.body.appendChild(fbox.content);
			X.go(content,{target:'__F_WIN__',params:{'_width':fbox.options.width,'_height':fbox.options.height}});
		}
	},
	hide:function(){
		e = document.getElementsByTagName('select');
		for(i=0;i<e.length;i++){
			e[i].style.visibility=fbox.selectElementsStatus[i];
		}
		fbox.bg.hide();
		fbox.win.hide();
		document.body.style.overflow='';

		X.runtime.currentTab = X.runtime.lastNmTab;
	},
	show:function(){

		if(X.runtime.currentTab != '__F_WIN__'){
			X.runtime.lastNmTab = X.runtime.currentTab;
			X.runtime.currentTab = '__F_WIN__';
		}

		X.runtime.currentTab = '__F_WIN__';
		e = document.getElementsByTagName('select');
		for(i=0;i<e.length;i++){
			fbox.selectElementsStatus[i] = e[i].style.display;
			e[i].style.visibility='hidden';
		}
		fbox.bg.show();
		fbox.win.show();
		document.body.style.overflow='hidden';
	},
	close:function(){
		if(fbox.win){
			X.runtime.currentTab = X.runtime.lastNmTab;
			e = document.getElementsByTagName('select');
			removeElement(fbox.win);
			removeElement(fbox.bg);
			for(i=0;i<e.length;i++){
				e[i].style.visibility=fbox.selectElementsStatus[i];
			}
			document.body.style.overflow='';
			fbox.win = null;
		}
	}
	,
	selectElementsStatus:[],
	msgbox:function(message,buttons,options){
		var _options={
			noClose:false,
			title:'?',
			width:450
		}

		Object.extend(_options, options || {});

		var btnbox = Builder.node('div',{className:'actionbar',style:'margin-left:14%;'});
		buttons.each(
				function(b){
					btnbox.appendChild(
						Builder.node('b',{className:'button'},[
							Builder.node('label',{onclick:b.onclick},b.label)
							])
						);
				}
		);

		var header = Builder.node('tr',{className:'dialog-title'},[
						Builder.node('th',{},[
								Builder.node('h1',{},_options.title)
							])
						]);
		if(!_options.noClose){
			header.appendChild(
				Builder.node('td',{align:'right'},[
							Builder.node('span',{className:'close',onclick:'fbox.close()'},' ')
						])
			)
		}
		var bd = Builder.node('p',{className:'body'});
		bd.innerHTML = message;
		var base=Builder.node('table',{className:'dialog',cellspacing:4,cellpadding:0,style:'width:'+_options.width+'px'},[
																														   
				Builder.node('tbody',{},[
					header, Builder.node('tr',{},[
							Builder.node('td',{className:'dialog-base',colspan:2},[
								Builder.node('div',{className:'dialogbox',style:'height:'+_options.height+'px'},[
									bd
									,btnbox])
							])
						])
					])]);

		_options.noClose = true;
		fbox.open(base,_options);
	}
}

⌨️ 快捷键说明

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