1. if(!d) d=document:
首先MM_findObj(n, d),有两个参数,而在两处用时,一处传了两个参数MM_findObj(n,d.layers[i].document),一处传了一个参数MM_findObj(ob)所以第一个if(!d) d=document判断是否传了第二个参数d,如果没传第二个参数d,则!d为true,为d赋值文文件对象document
2. if((p=n.indexOf("?"))>0&&parent.frames.length)
用indexOf查找函数MM_findObj(n, d)的第一个参数n中?的位置(找不到?值为-1,找到?值为相应的位置),并赋给变量p,并判断这个位置是否大于0, parent.frames.length:父框架个数是否大于0
3. if(!(x=d[n])&&d.all) x=d.all[n]
为变量x赋值d[n],如果不存在d[n]对象,且d.all存在,则为x赋值d.all[n]
4. for (i=0!x&&i<d.forms.lengthi++) x= d.forms[i][n]
d.forms.length:所传参数d对象的窗口个数,循环判断为x赋的值不存在时!x为真,且i<d.forms.length时,重新为x赋值d.forms[i][n]
5. for(i=0!x&&d.layers&&i<d.layers.lengthi++) x=MM_findObj(n,d.layers[i].document)
d.layers.length: 所传参数d对象的层个数,循环判断为x赋的值不存在时!x为真,且i<d.forms.length时,重新为x赋值递归调用自身函数MM_findObj的返回值
6. if(!x &&document.getElementById) x= document.getElementById(n)
document.getElementById: 所传参数d对象的对象id, 判断为x赋的值不存在时!x为真且所传参数d对象存在对象,则为x赋值document.getElementById(n)
这是一段javascript代码!language的意思是使用 javascript 语言!
type 是类型
function 是一个关键字;
MM_jumpMenu是函数名称;
targ,selObj,restore 是还输的参数!