阅读:3826回复:1
帮忙看看这个非标准的网页....
某大学的选课网站,似乎是没有用getElementByID来做?Firefox不能弹出菜单,Opera和IE都可以
主页相关代码: ................... <SCRIPT language="javascript" src="Menu.js"></SCRIPT> ................... <table id="mainmenu" class="MainMenuBar"><tr><td nowrap id='MainMenuN1211' class='MainMenu' onMouseOver="showmenu('MainMenuN1211','SubMenuN1211' );" onmouseout="hidemenu('MainMenuN1211','SubMenuN1211');">网上选课</td><td nowrap class='MenuTd' valign='middle'></td><td nowrap id='MainMenuN1214' class='MainMenu' onMouseOver="showmenu('MainMenuN1214','SubMenuN1214' );" onmouseout="hidemenu('MainMenuN1214','SubMenuN1214');">教学质量评价</td><td nowrap class='MenuTd' valign='middle'></td><td nowrap id='MainMenuN1215' class='MainMenu' onMouseOver="showmenu('MainMenuN1215','SubMenuN1215' );" onmouseout="hidemenu('MainMenuN1215','SubMenuN1215');">信息维护</td><td nowrap class='MenuTd' valign='middle'></td><td nowrap id='MainMenuN1216' class='MainMenu' onMouseOver="showmenu('MainMenuN1216','SubMenuN1216' );" onmouseout="hidemenu('MainMenuN1216','SubMenuN1216');">信息查询</td><td nowrap class='MenuTd' valign='middle'></td><td nowrap id='MainMenuN1231' class='MainMenu' onMouseOver="showmenu('MainMenuN1231','SubMenuN1231' );" onmouseout="hidemenu('MainMenuN1231','SubMenuN1231');">公用信息</td><td nowrap class='MenuTd' valign='middle'></td><td nowrap width='100%'></td></tr></table> <table cellpadding='3' cellspacing='0' border='0' id='SubMenuN1211' class='subMenuBar' onMouseOver="showmenu('MainMenuN1211','SubMenuN1211');" onmouseout="hidemenu('MainMenuN1211','SubMenuN1211');"><tr><td name='zhjN121101' class='SubMenu' onMouseOver='doColor(this);' onMouseOut='undoColor(this);'><a href="xsxk.aspx?xh=3021021040" target='_blank'>学生选课</a></td></tr><tr><td name='zhjN121103' class='SubMenu' onMouseOver='doColor(this);' onMouseOut='undoColor(this);'><a href="xscxbm.aspx?xh=3021021040" target='_blank'>按条件选课</a></td></tr><tr><td name='zhjN121104' class='SubMenu' onMouseOver='doColor(this);' onMouseOut='undoColor(this);'><a href="rlymsq.aspx?xh=3021021040" target='_blank'>教学班补选申请</a></td></tr><tr><td name='zhjN121106' class='SubMenu' onMouseOver='doColor(this);' onMouseOut='undoColor(this);'><a href="xsxkdl.aspx?xh=3021021040" target='_blank'>学科导论查询及选课</a></td></tr><tr><td name='zhjN121109' class='SubMenu' onMouseOver='doColor(this);' onMouseOut='undoColor(this);'><a href="xsyxxxk_zd.aspx?xh=3021021040" target='_blank'>院系选修课预选</a></td></tr></table> ................................... Menu.js文件内容: function findObj(n, d) { var p,i,x; if(!d) d=document; 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=findObj(n,d.layers[i].document); return x; } function showmenu(main,menuid) { obj1=findObj(main); obj2=findObj(menuid); if (obj1.style) obj2=obj2.style; obj2.top=document.all.menu.offsetTop+20; obj2.left=obj1.offsetLeft+8; obj2.visibility='visible'; } function hidemenu(main,menuid){ obj2=findObj(menuid); if (obj1.style) obj2=obj2.style; obj2.visibility='hidden'; } function doColor(item) { item.bgColor = '#8B8B8B'; } function undoColor(item) { item.bgColor = '#DFDFDF'; } 不知有没有人肯烦心告诉我怎么改,我好发信过去折腾...... //bow~~~~ |
|
1楼#
发布于:2005-02-11 19:36
主要需要修改findobj函数。
目前这个函数的两个分支一个使用了document.all一个使用了layers,两者都不标准。前者是IE Only后者是Netscape 4.x Only。 return x;前加一句 if(!x) x=document.getElementById(n);试一试。我这是偷懒的改法。 |
|