📄 fbox.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 + -