📄 functions.js
字号:
var sk=new sack("do.php");
sk.setVar("action","list");
sk.setVar("path",p);
if ($('viewhidefiles').checked) sk.setVar("viewhidefiles","1");
sk.late=true;
sk.onCompletion=function()
{
var res=checkdata(sk.response);
if (res==1)
{
data[p]=pickdata(sk.response);
if (debug) alert("refreshed data from "+p+" and here is "+path);
if (p == path) display();
else if (r)
{
window.path=p;
display();
}
}
waitmeoff();
}
sk.onError=function()
{
alert("打开 "+p+" 的时候发生错误!");
}
sk.runAJAX();
}
function display()
{
if (debug) alert("display data:"+data[path]);
if (typeof(data[path])=="string" && data[path]!="")
{
if (debug) alert("data["+path+"]=string");
var d=data[path];
var arr=d.split("||");
var arr2;
var v,di=0,fi=0,i;
var mdir=new Array(),mfile=new Array(),msize=new Array(),mhide = new Array();
for(i=0;i<arr.length;i++)
{
v=arr[i];
if (v=="") continue;
if (v.indexOf("|")==-1)
{
if (v.indexOf("[/hide]") !=-1)
{
v = v.replace("[/hide]","");
mhide[v] = true;
}
mdir[di] = v;
predir=path+v+"/";
if (preload && !data[predir]) setTimeout("preloaddata('"+predir+"');",di*100);
di++;
}
else
{
arr2=v.split("|");
if (arr2[0].indexOf("[/hide]") !=-1)
{
mfile[fi] = arr2[0].replace("[/hide]","");
mhide[mfile[fi]] = true;
}
else mfile[fi]=arr2[0];
msize[fi]=arr2[1];
fi++;
}
}
data[path] = new Array();
data[path]["dir"] = mdir;
data[path]["file"] = mfile;
data[path]["size"] = msize;
data[path]["hide"] = mhide;
window.dir = mdir;
window.file = mfile;
window.daxiao = msize;
window.hidefiles = mhide;
}
else if (typeof(data[path]) == "object")
{
if (debug) alert("data["+path+"]=array");
window.dir=data[path]["dir"];
window.file=data[path]["file"];
window.daxiao=data[path]["size"];
window.hidefiles=data[path]["hide"];
}
window.path=path;
window.vdis=($('visit_mode').checked)?"none":"";
refresh();
}
function refresh() ///刷新列表
{
if (debug) alert("refresh");
if ($('icon_mode').checked) { refresh2(); return;}
var html='';
var i=0,f='';
var names=new Array("rowodd","display","name","id","path","fullname");
for (i=0;i<dir.length;i++)
{
if (dir[i]=="") continue;
var vals=new Array();
vals["rowodd"] = (i%2 == 1)?"1":"0";
vals["display"] = vdis;
vals["id"] = i;
vals["name"] = getlengthstr(dir[i],foldernamelen);
if (hidefiles[dir[i]] == true) vals["name"] = hidefileshtml.replace("{name}",vals["name"]);
vals["path"] = window.path+dir[i]+"/";
vals["fullname"] = dir[i];
html+=deal_item("dir",names,vals);
}
$('dirtable').innerHTML=html;
html = "";
var names=new Array("rowodd","display","name","id","path","url","size","type","fullname");
for (i=0;i<file.length;i++)
{
var f=file[i].split(".")[file[i].split(".").length-1];
f=f.toLowerCase();
f = (editfile[f]) ? "txt":(f=="zip")? "zip":(f=="exe" | f=="dll")?"exe":(imgfiles.indexOf(f)!=-1)? "image": "unknown";
var vals=new Array();
vals["url"] = dealurl(path+file[i]);
vals["id"] = i;
vals["rowodd"] = (i%2 == 1)?"1":"0";
vals["display"] = vdis;
vals["size"] = daxiao[i];
vals["type"] = f;
vals["fullname"] = file[i];
vals["path"]= UrlEncode( path+file[i]) ;
if (f == "zip")
{
vals["name"] = getlengthstr(file[i],filenamelen-5);
if (hidefiles[file[i]] == true) vals["name"] = hidefileshtml.replace("{name}",vals["name"]);
vals["name"]+= " <a style='display:"+vdis+"' href='javascript:unpackall1("+i+")'>解压</a>";
}
else
{
vals["name"] = getlengthstr(file[i],filenamelen);
if (hidefiles[file[i]] == true) vals["name"] = hidefileshtml.replace("{name}",vals["name"]);
}
html+=deal_item("file",names,vals);
}
$('filetable').innerHTML=html;
post_fresh();
}
function refresh2() ///刷新列表
{
if (debug) alert("refresh2");
var i=0,f='',coli=0,html='';
if (typeof dir == "object")
{
html+= "<table border=0 cellspacing=0 cellpadding=0 width=100% style='table-layout:fixed;'><tr height="+big_height+">";
for (i=0;i<dir.length;i++)
{
if (dir[i]=="") continue;
coli++;
html+="<td style='height:"+big_height+";width:"+big_width+"px;' align=center valign=middle onmouseover=\"this.style.backgroundColor='#eeeeee';\" onmouseout=\"this.style.backgroundColor='#ffffff';\">";
html+="<a href='javascript:opendir(\""+path+dir[i]+"/\")' title='打开 "+dir[i]+" 目录'><img border=0 src='images/big_folder.gif' ></a></br>"+
"<input style='display:"+vdis+"' type='checkbox' id='checkbox_d"+i+"'>"+
"<a href='javascript:opendir(\""+path+dir[i]+"/\")' title='打开 "+dir[i]+" 目录'>"+getlengthstr(dir[i],namelength)+
"</a></br>"+
"<div align=center style='display:"+vdis+"'><a href='javascript:filerename2("+i+")' title='重命名 "+dir[i]+" 文件夹'>改名</a>"+
" <a href='javascript:makesure(\"d\","+i+");' title='删除"+dir[i]+"目录'>删除</a></div></td>";
if (coli == coln && i!=dir.length)
{
html+="</tr><tr>";
coli=0;
}
}
if (coli!=0)
for(i=0;i<coln-coli;i++)
html+="<td style='width:"+big_width+"px;'> </td>";
html+="</tr></table>";
}
$('dirtable').innerHTML=html;
coli=0;
html="";
if (typeof file=="object")
{
html+= "<table border=0 cellspacing=0 cellpadding=0 width=100% style='table-layout:fixed;'><tr>";
for (i=0;i<file.length;i++)
{
coli++;
if (file[i]=="") continue;
html+="<td style='height:"+big_height+";width:"+big_width+"px;' valign=middle align=center onmouseover=\"this.style.backgroundColor='#eeeeee';\" onmouseout=\"this.style.backgroundColor='#ffffff';\">";
f=file[i].split(".")[file[i].split(".").length-1];
f=f.toLowerCase();
var hrefsrc=(jumpfile[f])?"jump.php?url="+path+file[i]:dealurl(path+file[i]);
html+="<a href='"+hrefsrc+"' target=_blank title='打开 "+file[i]+" 文件\n大小:"+daxiao[i]+" KB'>";
html+="<img border=0 src='";
if(editfile[f])
html+='images/big_txt.gif';
else if (f=="zip")
html+='images/big_rar.gif';
else if (f=="exe" | f=="dll")
html+='images/big_exe.gif';
else if (imgfiles.indexOf(f)!=-1)
html+='image.php?path='+path+file[i]+"&max="+(imgmax-1)+"' onload='resizeimage(this)' style='"
else
html+='images/big_unknown.gif';
html+="'></a><br><input type='checkbox' id='checkbox_f"+i+"' style='display:"+vdis+"'>";
html+="<a href='"+hrefsrc+"' target=_blank title='打开 "+file[i]+" 文件\n大小:"+daxiao[i]+" KB'>"+getlengthstr(file[i],namelength)+"</a>";
html+=(f=="zip")?" <a href='javascript:unpackall1("+i+")' style='display:"+vdis+"' title=把当前文件解压到同名目录>解</a> ":"";
html+="<div style='width:100%;display:"+vdis+"'>";
html+="<a href='javascript:downfile1("+i+");' title=下载源文件>下</a> "+
"<a href='javascript:filerename1("+i+");' title=重命名当前文件>改</a> "+
"<a href='index.php?action=editfile&path="+path+file[i]+"' target=_blank title='编辑文本文件或浏览zip文件'> ";
html+=(f=="zip")?"浏":"编";
html+="</a> "+
"<a href='javascript:makesure(\"f\","+i+");' title='删除"+file[i]+"文件'>删</a></div>";
html+="</td>";
if (coli == coln && coli!= file.length)
{
html+="</tr><tr>";
coli=0;
}
}
if (coli!=0)
for(i=0;i<coln-coli;i++)
html+="<td style='width:"+big_width+"px;'> </td>";
html+="</tr></table>";
}
$('filetable').innerHTML=html;
post_fresh();
}
function deal_item(typ,names,vals)
{
var s = (typ == "file")?file_item:dir_item;
if (typeof names != "object" || typeof vals != "object") return false;
for(var i=0;i<names.length;i++)
{
while (s.indexOf("{"+names[i]+"}") != -1) s=s.replace("{"+names[i]+"}",vals[names[i]]);
}
return s;
}
function getstrlength(sChars)
{
return sChars.replace(/[^\x00-\xff]/g,"xx").length;
}
function getlengthstr(sSource, iLen)
{
if(getstrlength(sSource) <= iLen) return sSource;
var ELIDED = "...";
var str = "";
var l = 0;
var schar;
for(var i=0; schar=sSource.charAt(i); i++)
{
str += schar;
l += (schar.match(/[^\x00-\xff]/) != null ? 2 : 1);
if(l >= iLen - ELIDED.length) break;
}
str += ELIDED;
return str;
}
function stoplinking()
{
if (window.linking && window.linking.xmlhttp && typeof window.linking.xmlhttp == "object") {
//window.status = "aborting...";
try {
window.linking.xmlhttp.abort();
}
catch(e) {
alert('网络故障: abort failed!');
}
window.linked = true;
return;
}
}
function dealpath(s)
{
if (!s) return "";
if (s.indexOf(root) != 0) opendir(root);
s = s.replace(root,'');
var arr=s.split("/"),s1 = root;
var r = "<a href='javascript:opendir(\""+root+"\");'>根目录</a>/";
for(var i=0;i<arr.length;i++)
{
if (!arr[i]) continue;
s1=s1+arr[i]+"/";
r=r+"<a href='javascript:opendir(\""+s1+"\");'>"+getlengthstr(arr[i],20)+"</a>/";
}
return r;
}
function dealurl(s)
{
if (!s) return;
var arr=s.split("/");
var i,url=me;
for(i=0;i<arr.length;i++)
{
url+=(arr[i]!="." && arr[i]!="..")?"/"+UrlEncode(arr[i]):"";
}
return url;
}
var isIE = (navigator.userAgent.indexOf("MSIE") != -1);
var filei=0; setTimeout("$import();",20*1000);
function addupfile()
{
filei++;
var span = document.getElementById("updivdata");
var divObj = document.createElement("div"), fileObj, delObj;
divObj.id = "upfileinput"+filei;
if (isIE)
{
fileObj = document.createElement("<input type=file>");
delObj = document.createElement("<input type=button onclick='delupfile("+filei+")'>");
} else
{
fileObj = document.createElement("input");
fileObj.type = "file";
delObj = document.createElement("input");
delObj.type = "button";
delObj.setAttribute("onclick", "delupfile("+filei+")", 0);
}
fileObj.name = "myfile"+(filei);
fileObj.size = "50";
delObj.value ="删除";
divObj.appendChild(document.createTextNode("本地文件:"));
divObj.appendChild(fileObj);
divObj.appendChild(document.createTextNode(" "));
divObj.appendChild(delObj);
span.appendChild(divObj);
}
function delupfile(i)
{
var span = document.getElementById("updivdata");
var divObj = document.getElementById("upfileinput"+i);
if (span != null && divObj != null)
{
span.removeChild(divObj);
}
}
function savefromurl()
{
var url=document.upform2.url.value.toLowerCase();
if (url.indexOf("://") == -1 )
alert("请输入正确的url地址!");
else
{
sendcomm("savefromurl",Array("url","path","filename"),Array(url,path,document.upform2.filename.value));
}
return false;
}
function resizeimage(img)
{
var w=img.width,h=img.height;
if (h>=w && h>imgmax)
{
img.height=imgmax;
img.width=(imgmax/h)*w;
}
else if (w>=h && w>imgmax)
{
img.width=imgmax;
img.height=(imgmax/w)*h;
}
}
function checkfilename(f)
{
var limit=Array('\\','\/',':','*','?','"','<','>','|','\'');
for(var i=0;limit[i];i++)
if (f.indexOf(limit[i]) != -1)
{
alert("文件和文件夹名不能含有以下字符:\n"+"\\ \/ : * ? \" < > | '");
return false;
}
return true;
}
function setHover(el,color)
{
if (!el.bg) el.bg=el.style.backgroundColor;
el.style.backgroundColor = color;
}
function reHover(el)
{
el.style.backgroundColor=el.bg;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -