|
阅读:3886回复: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);试一试。我这是偷懒的改法。 |
|