没人帮忙吗?这是一个菜单的函数,
算了谁能解释这个函数中的几个问题照样给分
function MM_findObj(n, d) 
{ //v4.01
  var p,i,x;  
  if(!d) d=document;  //不带参数d,即默认下为本文档
  if((p=n.indexOf("?"))>0 && parent.frames.length) //这儿看不懂
   { d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; //这儿看不懂
  for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];//这儿看不懂
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);//这儿看不懂
  if(!x && d.getElementById) x=d.getElementById(n);//这儿看不懂
 return x;
}
就中间一块看不懂,它的功能是为了实现框架结构时的菜单功能吗?

解决方案 »

  1.   

    这两个都是dreamwaver的function.
    其中,function MM_findObj(n, d)是根据文档对象的名称或ID(n)得到文档对象的function.
    function MM_showHideLayers()是根据传入的layer的名称或ID显示或隐藏对应的layer。也就是这个菜单的主要实现函数.
      

  2.   

    管它怎么写,拿来用就是了。
    http://wufanglu.myrice.com/
    进入繁体版个人主页,里面就用到了此代码。用了这么久,还不知是哪位无名英雄写的哩,谁能告诉我?
      

  3.   

    to:barrydiu(巴索) 
    你这样说也太笼统了,很容易知道你说的嘛。
    我认为主要是解楼主提出的问题才是关键。
      

  4.   

    bubuy(澎湃 NoMoneyToBuy) 说得对,其实只是为了来过来用的话我就不用开帖子问了,我就是搞不明白函数function MM_findObj(n, d) 中的几个IF到底是什么意思,各位帮帮忙吧!!
      

  5.   

    if((p=n.indexOf("?"))>0 && parent.frames.length) //这里是有框架的时候,n参数(MM_showHideLayers()的第二个参数)的格式为:框架id?层id,中间以问号分隔 如:frame1?layer1