[100分]一道难题!!!谁能把Yahoo新邮各技术扒下来!!!(为JS Fans们做贡献!!!)

Lorenes 2006-11-19 01:37:40
如题

大家去看看Yahoo的新邮箱,

1.支持拖拽,弄得跟OutLook似的!!超级NB的JAVASCRIPT啊.....
2.还有一个无敌技术,翻页大滚动,再也不用[上一页][下一页]了
3.打开邮件时的,动态的菜单标题栏,自动排列...真酷哦...

JS Fans 去YAHOO中文邮注册吧,现在还是BETA呢
http://cn.yahoo.com.cn

谁厉害抓成全本地的,打成RAR包给大家共享!!!!!!!!!!!
...全文
552 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
Lorenes 2007-02-28
  • 打赏
  • 举报
回复
怎么还没研究出来呢?
lindeqiang 2007-02-28
  • 打赏
  • 举报
回复
还是放弃去扒别人的代码,要是真想得到一个,还不如自己去仿造,如果个人认为要走捷径,那么仿造的时间可能远远少于自己弄明白Yahoo的js内幕!我们要耻于偷盗,用于借鉴优点/亮点
shenglijay 2007-02-28
  • 打赏
  • 举报
回复
用firefox,不过,用了混淆器,看不懂!!!!!!
Lorenes 2006-11-29
  • 打赏
  • 举报
回复
顶一下啊....没人研究出来啊........
yanxw_227 2006-11-28
  • 打赏
  • 举报
回复
什么叫混淆器啊?
过会儿去注册个邮箱试试!
Mapleleaf123 2006-11-28
  • 打赏
  • 举报
回复
JF
Lorenes 2006-11-28
  • 打赏
  • 举报
回复
就一个特简单的功能,不用 文件:[____________][浏览...]
而是直接一点 [附件] ....弹出文件选取器
Bevin_chen 2006-11-28
  • 打赏
  • 举报
回复
现在很流行ajax
Lorenes 2006-11-28
  • 打赏
  • 举报
回复
/*
原来Yahoo的Javascript用了混淆器啊......
超级难理解啊....这段就是里面很NB的transparent_attch技术,
按一个钮,直接选文件....
可惜混淆得乱七八糟的,没一句备注...谁看得懂哦....
*/


function(){if(this.d.length==0){return;
}var O=elt("Attach");
var r="";
var A="";
var q=0;
var c="";
O.style.display="block";
for(var W=0;
W<this.d.length;
W++){c=this.d[W];
q=Te(c.byteSize);
AY.J+=q-0;
fileName=c.fileName;
A=fileName+" ("+q+yP.AP+")";
AY.j++;
c.attachId="attach_id"+AY.j;
var K=Yi("<div style='position:relative;' id='"+c.attachId+"'>",O);
TE();
K.innerHTML=Oa("tableIcon attachmentIcon",A,"remove",yP.FY)+"</div>";
}tS();
},C:["fileName","mimeType","byteSize","partId","mid","tnef","folderName","attachId","diskFileName"],j:function(q){for(var c=0,attachFieldnames=Qo.C;
c<attachFieldnames.length;
c++){this[attachFieldnames[c]]=q[c];
}if(q[1]!=null){var W=this[Qo.C[1]].split("/");
this.K=W[0];
this.A=W[1];
}}};
Qo.j.prototype.O=function(){var o=new Array();
for(var r=0,attachFieldnames=Qo.C;
r<attachFieldnames.length;
r++){QY.d(o,this[attachFieldnames[r]]);
}return o;
};
function Vh(){return Qo;
}function attach_init(v){var d=["<form id='upload_form' name='upload_form' style='position:absolute; ","action='./attachment' enctype='multipart/form-data' method='post' accept-charset='utf-8'> ","<input class=transparent_attach_btn "," title='",elt("btnTbl_Attach").title+"' ","onmouseover='kN(event, elt(\"btnTbl_Attach\"));' ","onmousedown='QJ(event, elt(\"btnTbl_Attach\"));' ","onmouseup='Q7(event, elt(\"btnTbl_Attach\"));' ","onmouseout='Z4(event, elt(\"btnTbl_Attach\"));' ","id='transparent_attach_btn' type='file' name='uploadfile' HIDEFOCUS='true' > ","</form>"];
v.outerHTML+=d.join("");
GY();
}function GY(){var d=elt("transparent_attach_btn");
var v=elt("btnTbl_Attach");
if(!d||!v){return;
}var C=d.offsetWidth-v.offsetWidth;
d.style.clip="rect(auto auto auto "+C+"px)";
d.style.left=(v.offsetLeft-C)+"px";
BN();
d.onchange=xQ;
v.onclick=rx;
}function AY(){if(Qo.N==null){Qo.s();
}AY.J=0;
AY.h=false;
AY.j=0;
AY.d=1;
AY.v=new Array();
AY.C=new Array();
var I=elt("btnTbl_Attach");
var s=elt("transparent_attach_btn");
var l=elt("Attach");
if(!s||!I){return;
}var N=Yi("<div id='sizeAndLogo' style='position:absolute; top:3px; right:3px;'>",l);
Yi("<span id='totalAttachedSizeArea' class='totalAttachedSizeAreaStyle'>",N);
var n=i9();
if(n.isBroadbandUser()){Yi('<IMG src="http://us.i1.yimg.com/us.yimg.com/i/us/pim/dclient/d/img/md5/9c6f90ccb8f09b18e55ca8836b132664_1.gif" style="border:0;">',N);
}else{var X=Yi('<A href="'+yP.GZ+'" target="_blank">',N);
Yi('<IMG src="http://us.i1.yimg.com/us.yimg.com/i/us/pim/dclient/d/img/md5/9c6f90ccb8f09b18e55ca8836b132664_1.gif" style="border:0;">',X);
}tS(true);
s.onchange=xQ;
}function rx(){var d=i9();
if(AY.J>=XD.g){d.HX.j((yP.Ri).toMessage("size="+XD.c+yP.U));
return false;
}else{if((Qo.v()+AY.d)>=XD.A5){d.HX.j(yP.Lp);
return false;
}else{if(AY.d>=Mv){d.HX.j(yP.RO);
return false;
}}}return true;
}function xQ(){var J=elt("upload_form");
var h=elt("transparent_attach_btn");
var v=elt("Attach");
if(v.style.display=="none"||v.style.display==""){v.style.display="block";
}Mu=true;
var I=(IL()==Uv.c)?"/":"\\";
var s=h.value.split(I);
var d=s[s.length-1];
d=pX(d);
if(R4(d)){J.reset();
return;
}AY.j++;
var j="attach_id"+AY.j;
var N=h.cloneNode(false);
N.onchange=xQ;
J.removeChild(h);
J.appendChild(N);
J.reset();
AY.d++;
AY.v[j]=h;
rr();
var C=document.createElement("div");
C.style.position="relative";
C.id=j;
v.insertBefore(C,v.childNodes[0]);
TE();
C.innerHTML=Oa("busyTwirlIcon",yP.CP+" "+d,"cancel",yP.s)+"</div>";
C.file_name=d;
Hm();
if(EI()){elt("transparent_attach_btn").style.display="none";
}}function EI(){if((AY.J>=XD.g)||((Qo.v()+AY.d)>=XD.A5)||(AY.d>=Mv)){return true;
}return false;
}function Oa(C,J,h,v){var d=["<div class='",C,"'></div>","<div style='position:absolute; top:2px; left:20px;'","<span class='attach_file_message_style'> ",J," </span>","<span class='textLink' id='"+h+"'","title='"+v+"'","onclick='k3(this);'>",v,"</span>"];
return d.join(" ");
}function k3(N){var j=elt("transparent_attach_btn");
var d=elt("Attach");
var v=N.parentNode.parentNode;
d.removeChild(v);
var C=v.id;
var J=Qo.n(C);
switch(N.id){case "remove":j.style.display="inline";
case "cancel_send_anyway":Xf(C);
break;
case "cancel":j.style.display="inline";
AY.h=false;
hB(C);
break;
case "ok":break;
case "skip":delete AY.C[C];
break;
case "send_anyway":if(J){d.insertBefore(v,d.childNodes[0]);
lz(J.fileName,Te(J.byteSize),C);
return;
}else{break;
}case "retry":d.insertBefore(v,d.childNodes[0]);
v.innerHTML=Oa("busyTwirlIcon",yP.CP+" "+v.file_name,"cancel",yP.s)+"</div>";
gI(C);
return;
default:return;
}var h=d.childNodes.length;
if(!QV.d){h-=1;
}if(h<=1){d.style.display="none";
}TE();
Hm();
}function Xf(J){var v=new Array();
var C=0;
for(var d=0;
d<Qo.d.length;
d++){if(Qo.d[d].attachId==J){AY.J-=Te(Qo.d[d].byteSize);
Mu=true;
continue;
}else{v[C++]=Qo.d[d];
}}Qo.d=v;
tS();
}function tS(v){var d=v?0:AY.J;
elt("totalAttachedSizeArea").innerText=(yP.Wr).toMessage("total_size="+d,"limit_size="+XD.c+yP.U);
}function R4(v){for(var d=0;
d<Qo.d.length;
d++){if(Qo.d[d].fileName==v){return true;
}}for(var h in AY.v){var C=elt(h);
if(C&&C.file_name==v){return true;
}}for(var j in AY.C){var J=elt(j);
if(J&&J.file_name==v){return true;
}}return false;
}function TE(){if(QV.d){var d=elt("Attach");
var v=d.childNodes.length;
if(v>=6){d.style.height=78;
}else{d.style.height=(v-2)*17+30;
}Hm();
}}function BN(){var d=elt("upload_form");
var C=elt("transparent_attach_btn");
Yi("<input type='hidden' name='_charset_'>",d);
Yi("<input type='hidden' name='resulturl'>",d);
var v=kPartner.path.proxy+"/ya/upload";
d.action=v;
d.target="hidden_target_upload_iframe";
}function un(){return(AY.h||(AY.d>1));
}function vH(d){var v=AY.v[d];
if(v){AY.C[d]=v;
AY.d--;
delete AY.v[d];
}}function hB(d){if(delete AY.v[d]){AY.d--;
}else{delete AY.C[d];
}}function rr(){if(AY.h){setTimeout("rr()",30000);
return;
}var d=elt("upload_form");
var J=elt("transparent_attach_btn");
for(var v in AY.v){var C=AY.v[v];
if(!C){continue;
}d.resulturl.value="/dc/attach.html?attachId="+v;
d.action=kPartner.path.proxy+"/ya/upload?resulturl="+encodeURIComponent(d.resulturl.value);
d.removeChild(J);
d.appendChild(C);
setTimeout("Nf()",0);
AY.h=true;
vH(v);
return;
}}function Nf(){var d=elt("upload_form");
var v=elt("transparent_attach_btn");
d.submit();
var C=v.cloneNode(false);
C.onchange=xQ;
d.removeChild(v);
d.appendChild(C);
d.reset();
}function gI(d){var v=AY.C[d];
if(v){AY.v[d]=v;
AY.d++;
delete AY.C[d];
rr();
}}function Ta(C,N){var h=Te(C[2]);
var d=C[C.length-2];
var s=elt("Attach");
var J=elt(d);
AY.h=false;
if(!J){rr();
return;
}if(lU(h,d)){return;
}var v=J.file_name;
C[0]=v;
switch(N){case "uploadAVInternalError":case "uploadAVError":case "uploadAVNotScannable":case "uploadAVServerDown":delete AY.C[d];
Qo.J(C);
AU(v,yP.Zu,d,"send_anyway",yP.R1,"cancel_send_anyway",yP.s);
break;
case "uploadAVNoVirus":case "uploadAVCleaned":delete AY.C[d];
Qo.J(C);
lz(v,h,d);
break;
case "uploadFileSizeError":var j=cG();
q1(j,d);
yT();
TE();
break;
case "uploadNoFileError":AU(v,yP.DW,d,"skip",yP.CB);
break;
case "uploadAVCannotClean":case "uploadAVHasVirus":AU(v,yP.iK,d,"ok",yP.K);
break;
case "uploadPartialFileError":case "uploadInternalError":case "uploadAuthError":default:AU(v,yP.DW,d,"skip",yP.CB,"retry",yP.mP);
}rr();
TE();
Hm();
if(!EI()){elt("transparent_attach_btn").style.display="inline";
}}function lU(d,C){if(!ZL(d)){return false;
}d-=0;
if((AY.J+d)>=XD.g){var v=cG();
q1(v,C);
yT();
TE();
return true;
}return false;
}
Lorenes 2006-11-28
  • 打赏
  • 举报
回复
混淆器,很简单,就是把
function UploadAction(filename,fileType,fileSize){

}
/*
上面代码很容易读吧,变为:
*/
function ad(aa,ab,ac){

}

同样还是原代码,逻辑依然通顺,你还看得懂不................?!

这就是Javascript保护自己的方法.............
wangys2006 2006-11-20
  • 打赏
  • 举报
回复
你给个邮箱地址给我,谁要的我扒给您!
把邮箱地址都给我吧!
网易邮箱的内容都被我扒光了!:D
qingsion 2006-11-20
  • 打赏
  • 举报
回复
看一些开源的有关是如何现实。以鱼不如以渔。csdn就不少呀
-----------------------------------------------
don't wrroied,be happy! 有问题qingsion@gmail.com交流
Lorenes 2006-11-20
  • 打赏
  • 举报
回复
要有信心,听说有个插件,可以把IE里看到的效果自动结构化储存到磁盘上,
哪位牛人提供一下,那样多方便啊
xiehuiqi 2006-11-20
  • 打赏
  • 举报
回复
自己学吧,多想,多体会,多实践,一定要扎实
其实这些代码的语法很简单
但是难的是dhtml
个人觉得看这些复杂代码会降低自己的自信
9441 2006-11-20
  • 打赏
  • 举报
回复
要扒的话,HOTMAIL的LIVE邮箱,GMAIL的一并扒了吧,都比较NB
福贵 2006-11-20
  • 打赏
  • 举报
回复
期待牛人去扒
gengxu 2006-11-19
  • 打赏
  • 举报
回复
能那么容易吗?
Lorenes 2006-11-19
  • 打赏
  • 举报
回复
没人回复呀,都去扒网站去啦?
Lorenes 2006-11-19
  • 打赏
  • 举报
回复
呵呵,技术多多,越看越喜欢......
JS Fans 的天堂,丝毫不输OutLook界面....
li_net 2006-11-19
  • 打赏
  • 举报
回复
路过,UP
加载更多回复(1)

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧