求一段JavaScript的注释!!

[复制链接]
查看11 | 回复0 | 2009-1-30 06:28:38 | 显示全部楼层 |阅读模式
刚开始学习,哪位大虾帮忙添加个详细的注释啊,最好逐行添加!!!<script language="JavaScript1.2">scores = new Array(20);var numTotal=0;NS4 = (document.layers) ? 1 : 0;IE4 = (document.all) ? 1 : 0;ver4 = (NS4 || IE4) ? 1 : 0;if (ver4) {
with (document) {
write("<STYLE TYPE=\'text/css\'>");
if (NS4) {
write(".parent {position:absolute; visibility:visible}");
write(".child {position:absolute; visibility:visible}");
write(".regular {position:absolute; visibility:visible}")
}
else {
write(".child {display:none}")
}
write("</STYLE>");
}}function getIndex(el) {
ind = null;
for (i=0; i<document.layers.length; i++) {
whichEl = document.layers;
if (whichEl.id == el) {
ind = i;
break;
}
}
return ind;}function arrange() {
nextY = document.layers[firstInd].pageY +document.layers[firstInd].document.height;
for (i=firstInd+1; i<document.layers.length; i++) {
whichEl = document.layers;
if (whichEl.visibility != "hide") {
whichEl.pageY = nextY;
nextY += whichEl.document.height;
}
}}function initIt(){
if (!ver4) return;
if (NS4) {
for (i=0; i<document.layers.length; i++) {
whichEl = document.layers;
if (whichEl.id.indexOf("Child") != -1) whichEl.visibility = "hide";
}
arrange();
}
else {
divColl = document.all.tags("DIV");
for (i=0; i<divColl.length; i++) {
whichEl = divColl(i);
if (whichEl.className == "child") whichEl.style.display = "none";
}
}}function expandIt(el) {        if (!ver4) return;
if (IE4) {
whichEl1 = eval(el + "Child");                for(i=1;i<=numTotal;i++){                        whichEl = eval(scores + "Child");                        if(whichEl!=whichEl1) {                                whichEl.style.display = "none";                        }                }
whichEl1 = eval(el + "Child");
if (whichEl1.style.display == "none") {
whichEl1.style.display = "block";
}
else {
whichEl1.style.display = "none";
}
}
else {
whichEl = eval("document." + el + "Child");                for(i=1;i<=numTotal;i++){                        whichEl = eval("document." + scores + "Child");                        if(whichEl!=whichEl1) {                                whichEl.visibility = "hide";                        }                }
if (whichEl.visibility == "hide") {
whichEl.visibility = "show";
}
else {
whichEl.visibility = "hide";
}
arrange();
}}onload = initIt;</script>

                                                                                                呵呵,分越来越高了!注释好的文件见附件,//这么长! -_-<script language="JavaScript1.2">scores = new Array(20);//定义scores数组,包含20个元素var numTotal=0;//定义numTotal变量,初始值为0NS4 = (document.layers) ? 1 : 0;//这是一个三元表达式,如果document.layers可以执行,则变量NS4的值为1,否则为0,IE4 = (document.all) ? 1 : 0;//意思同上,至于document.layers和document.all可以到百度上搜,这些一般用来判断浏览器类型ver4 = (NS4 || IE4) ? 1 : 0;//如果变量NS4和IE4有一个值为1(为1即为真),则变量ver4值为1,意思是如果浏览器为NetScape或IE则ver4为1if (ver4) //如果ver4为1,则{        with (document)//with(document)表示后面{}里的所有都是document的方法(相信你应该知道document.write),如果不用with那么下面的所有write()都要改成document.write()        {                write("<STYLE TYPE=\'text/css\'>");//在页面上输出"<style type=\'text/css\'>",这个是html的style标签,                if (NS4)//如果NS4为1,则                {                        write(".parent {position:absolute; visibility:visible}");//在页面上输出内容,在Css里 .parent表示parent是一个css类,它的定位方式是绝对定位,可见性为可见                        write(".child {position:absolute; visibility:visible}");//同上                        write(".regular {position:absolute; visibility:visible}")//同上                }                else//如果NS4不为1,那么推理一下,程序能够运行到这一步,就肯定是IE4这个变量值为1                {                        write(".child {display:none}")//css类child,它的显示为空,即不显示,且不占位                }                write("</STYLE>");//输出</style>,结束style标签        }}function getIndex(el)//定义函数getIndex(),并传递形参el{        ind = null;//ind初值为null        for (i=0; i<document.layers.length; i++)//循环语句,i初值为0,每循环一次++(即加1),直到i不小于document.layers.length时停止循环,document.layers.length在这里可以理解为在NetScape浏览器中页面内所有layer(层)的集合内的对象的个数(通俗点:页面中层的个数)        {                whichEl = document.layers;//将document.layers赋给变量whichEl,                if (whichEl.id == el)//如果whichEl变量(由于上一步将document.layers赋给whichEl,所以whichEl这时指向一个对象)的id等于形参el,则                {                        ind = i;//将i赋给变量ind                        break;//退出循环                }        }        return ind;//返回变量ind}function arrange(){        nextY = document.layers[firstInd].pageY +document.layers[firstInd].document.height;//这里的firstInd是什么?少了一句吧!我想应该少了一句firstInd=getIndex(这里放形参),document.layers.pageY这个现在已经不这样用了,我猜document.layers[firstInd].pageY表示页面中index为firstInd的层的offsetTop值,document.layers[firstInd].document.height表示页面中index为firstInd的层的offsetHeight值,不必保证是否正确,我没用过,        for (i=firstInd+1; i<document.layers.length; i++)//循环语句,和上面的循环语句类似,不解释了,请参考第30行的for语句        {                whichEl = document.layers;                if (whichEl.visibility != "hide")//如果whichEl的可见性不等于hide(隐藏),则                {                        whichEl.pageY = nextY;//whichEl对象左上角在页面上的top重新改变到nextY上                        nextY += whichEl.document.height;//nextY加上whichEl的高度                }        }}function initIt()//从函数名上可以知道,这是一个构造函数了{        if (!ver4) return;//如果ver4不等于1(!=表示不等于),则返回空,即结束此函数而不执行下面的语句        if (NS4)//如果NS4为1        {                for (i=0; i<document.layers.length; i++)                {                        whichEl = document.layers;//这两句和行31行的解释一样,                        if (whichEl.id.indexOf("Child") != -1) whichEl.visibility = "hide";//如果whichEl的id(whichEl的id是字符串,这个可以理解吧)这个字符串里包含字符串"Child",则whichEl的可见性为隐藏,即不显示。indexOf():在字符串内查找指定的字符或字符串,并返回第一次查找到的位置,如果没有查找到则返回-1,如"abcdefg".indexOf("c")的运行结果是2                }                arrange();//执行arrange()函数        }        else//如果NS4不为1,即IE4为1,则        {                divColl = document.all.tags("DIV");//将document.all.tags("DIV")赋给变量divColl,document.all.tags("DIV")我没用过,猜一下,应该是将页面中所有tag(标签)为div的对象赋给变量divColl,赋值完后divColl变成数组                for (i=0; i<divColl.length; i++)                 {                        whichEl = divColl(i);//将divColl的第i个元素赋给whichEl                        if (whichEl.className == "child") whichEl.style.display = "none";//如果whichEl的className(css类名)等于"child",则将whichEl的样式里的显示设置为none(无),即不显示,且不占位                }        }}function expandIt(el){        if (!ver4) return;        if (IE4)//如果IE4为1,则        {                whichEl1 = eval(el + "Child");//你的代码不全,如果没猜错,el是字符串,el+"Child"是两个字符串相加,得到的值还是字符串,但是eval(el+"Child")的结果是对象,是页面中id为el+"Child"的对象,如:el="nw",那么eval(el+"Child")结果就是id为"nwChild"的对象。至于eval()函数可以在百度上搜索其用法                for(i=1;i<=numTotal;i++)//注意numTotal是在一开始就定义的全局变量                {                        whichEl = eval(scores + "Child");//同第85行,注意srores是一开始就定义的一维数组,scores表示此数组里的第i个元素                        if(whichEl!=whichEl1)//如果whichEl不等于whichEl1,则                        {                        whichEl.style.display = "none";//whichEl的样式的显示为无,即不显示,且不占位                        }                }                whichEl1 = eval(el + "Child");                if (whichEl1.style.display == "none")//如果whichEl1的样式的显示为无,则                {                        whichEl1.style.display = "block";//whichEl1的样式的显示为块,块是css里的概念,可以理解为如果whichEl1没有显示,那么就把它显示出来                }                else                {                        whichEl1.style.display = "none";//隐藏whichEl1,现在的上面都解释过,或者解释过类似的,所以就不详细解释了,有不清楚的可以再提出来                }        }        else        {                whichEl = eval("document." + el + "Child");                for(i=1;i<=numTotal;i++)                {                        whichEl = eval("document." + scores + "Child");                        if(whichEl!=whichEl1)                        {                                whichEl.visibility = "hide";                        }                }                if (whichEl.visibility == "hide")                {                        whichEl.visibility = "show";                }                else                {                        whichEl.visibility = "hide";                }        arrange();//执行arrange()函数        }}onload = initIt;//页面载入完成后,执行initIt()函数,注意不要多加上函数的()//最后补充一下,document.layers是NetScape内特有的,而document.all是IE里特有的。</script>Layer 对于广大Photoshop 用户来说,可算是个法宝,然而在Web页面的设计上,使用Layer的却很少。Layer 可将页面的内容引入“层”的概念,增强了网页的处理能力。Layer 用法形如:〈Layer name ="nametext"top =20left =20width =400clip =0,0,400,200bgcolor =redvisibility ="show" 〉〈!-- 此处可加上任意合乎页面规则的内容//--〉〈/Layer〉  Layer是Netscape 实现动态页面的方法之一,Netscape Navigator 4.0以上支持此功能。  Layer作为页面上的一个对象具有如下属性和方法:  Name 给出Layer的名字,便于Javascript对Layer的控制;Top、Left决定了Layer左上角在页面或其它Layer上的位置;PageX、PageY 决定了 Layer左上角在页面上的位置,它和Top、Left稍有区别;Width决定Layer的宽度;Clip决定Layer显示的区域,有x、y 或x1、y1、x2、y2两种赋值法,x、y相当于0、0、x2、y2;Bgcolor 决定Layer的背景颜色;Visibility有三个值,show和hide决定了Layer是否可见,inherit 决定Layer继承父Layer的Visibility的属性;Background决定了Layer的背景图片;Src 使得Layer可以显示其它页面。  以上的属性可以通过Javascript动态改变,产生各种效果。  Layer还有以下方法:  MoveBy(dx, dy) 将Layer从当前位置向左移dx,向下移dy;MoveTo(x, y) 将Layer从当前位置移动到x、y 处,x、y为相对于页面或Layer的左上角的位置;MoveToAbsolute(x, y)将Layer从当前位置移动到x、y 处,x、y为相对于页面左上角的位置;ResizeBy(dwidth, dheight) 和ResizeTo(width, height)将重新设置Layer的显示区域;MoveAbove(layer)、MoveBelow(layer)两个方法可调整 Layer在Layer序列中的位置,但不改变Layer在页面或Layer上的水平和垂直位置。Load(sourcestring, width) 相当于改变Src的值。附件:Untitled-1.html
                                       
提问者对答案的评价:

                                                                                                我晕+_+,这么长啊!!在下无能为力!建议用电子词典(网上COPY一下)                                       

                                                                                                4 <script language="JavaScript1.2">//定义script语言,语言类型为JavaScript1.2scores = new Array(20);//定义一个有20个元素的数组scoresvar numTotal=0;//定义一个名为numTotal的变量,初值为0NS4 = (document.layers) ? 1 : 0;//如果语言支持document.layers,则变量NS4为1,否则为0IE4 = (document.all) ? 1 : 0;//如果支持document.all,则变量IE4为1,否则为0ver4 = (NS4 || IE4) ? 1 : 0;//NS4和IE4中有一个为1的话,则ver4为1,否则为0//以上三行代码的实际作用就是判断一下用户浏览器的版本是不是4或4以上if (ver4) {//如果ver4为1with (document) {//以document对象为基础,即在该大括号中的所有属性和方法都是document对象的,如下面的write相当于document.writewrite("<STYLE TYPE=\'text/css\'>");//在源文件中输出<STYLE TYPE=\'text/css\'>if (NS4) {//如果NS4为1write(".parent {position:absolute; visibility:visible}");//输出.parent {position:absolute; visibility:visible}write(".child {position:absolute; visibility:visible}");//输出.child {position:absolute; visibility:visible}write(".regular {position:absolute; visibility:visible}")//输出.regular {position:absolute; visibility:visible}}else {//否则,即如果NS4不为1write(".child {display:none}")//输出.child {display:none}}write("</STYLE>");//输出</STYLE>}}//上面这段IF语句,其作用为根据用户浏览器对语言的支持,输出一些CSS属性function getIndex(el) {//定义函数ind = null;//定义变量ind,初值为空for (i=0; i<document.layers.length; i++) {//i从0开始,到文档中层的数量(document.layers.length)结束,每次循环i加上1whichEl = document.layers;//将变量whichEl赋值为document.layers,即文档中的第i个层if (whichEl.id == el) {//如果该层的id属性和该函数的形参el相等ind = i;//将i的值赋值给变量indbreak;//退出循环}}return ind;//返回变量ind的值}//该函数的作用就是:根据某个层的id,找出该层是文档的第几个层(从0开始)function arrange() {//定义函数nextY = document.layers[firstInd].pageY +document.layers[firstInd].document.height;//定义变量nextY,其值为变量的第firstInd个层在文档中的高度加上该层高度,即该层底部在文档中的位置for (i=firstInd+1; i<document.layers.length; i++) {//从firstInd+1个层开始,直到最后,依次循环whichEl = document.layers;//将变量whichEl赋值为文档中的第i个层(注意:该变量与上一个函数中的同名变量是不相关的)if (whichEl.visibility != "hide") {//如果该层不是隐藏的whichEl.pageY = nextY;//将该层的高度设为nextY的值nextY += whichEl.document.height;//并把nextY的值加上该层的高度}//}//}////该函数的作用是将文档中从firstInd的下一个开始的所有层,其中非隐藏的层,从上到下依次排列,注意:该函数没有对层的横向坐标做任何改动function initIt(){//定义函数if (!ver4) return;//如果ver4不为1,即如果用户浏览器的版本在4以下,结果函数if (NS4) {//如果NS4为1for (i=0; i<document.layers.length; i++) {//依次循环所有的层whichEl = document.layers;//使用变量赋值为文档中的第i个层if (whichEl.id.indexOf("Child") != -1) whichEl.visibility = "hide";//如果该层的ID值中包含child,设为隐藏}//arrange();//排列函数}else {//否则,即如果NS4不为1divColl = document.all.tags("DIV");//定义变量divColl为文档中所有层的集合for (i=0; i<divColl.length; i++) {//依次循环这些层whichEl = divColl(i);//使用变量whichEl,值为第i个层if (whichEl.className == "child") whichEl.style.display = "none";//如果该层的className是child,则设为隐藏}//}//}////该函数的作用是将文档中使用child样式的层设置为隐藏function expandIt(el) {//定义函数if (!ver4) return;//如果ver4不为1,即如果用户浏览器的版本在4以下,结果函数if (IE4) {//如果是IE4的话whichEl1 = eval(el + "Child");//for(i=1;i<=numTotal;i++){//whichEl = eval(scores + "Child");//if(whichEl!=whichEl1) {//whichEl.style.display = "none";//}//}//将文档中所有的child元素中,与指定元素不同的元素设置为隐藏whichEl1 = eval(el + "Child");//if (whichEl1.style.display == "none") {//whichEl1.style.display = "block";//}//else {//whichEl1.style.display = "none";//}//将指定层的显示与否设置为原来的相反值}//else {//whichEl = eval("document." + el + "Child");//for(i=1;i<=numTotal;i++){//whichEl = eval("document." + scores + "Child");//if(whichEl!=whichEl1) {//whichEl.visibility = "hide";//}//}//将文档中所有的child元素中,与指定元素不同的元素设置为隐藏if (whichEl.visibility == "hide") {//whichEl.visibility = "show";//}//else {//whichEl.visibility = "hide";//}//将指定层的显示与否设置为原来的相反值arrange();//排列}//}//onload = initIt;//定义文档加载完成时执行函数initIt()</script> //
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行