Forum Moderators: open

Message Too Old, No Replies

JavaScript not working in Firefox

works fine in IE, doesnt show menu in Firefox

         

hollopeterb

7:32 pm on Mar 24, 2009 (gmt 0)

10+ Year Member


Hello, I recently used some javascript code to utilize a drop down menu, it works great in IE, but the alignment is off in Firefox and more importantly, the menu's do not show up when moused over. Can someone please help me? I posted the functions and their calls below. Thanks!

<script language="JavaScript">
<!--
function MM_findObj(n, d) { //v3.0
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=MM_findObj(n,d.layers[i].document); return x;
}

function MM_showHideLayers() { //v3.0
var i,p,v,obj,args=MM_showHideLayers.arguments;
for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v='hide')?'hidden':v; }
obj.visibility=v; }
}

//-->
</script>

<div id="novosti" style="position:absolute; left:121px; top:175px; width:83px; height:15px; z-index:13" onmouseover="MM_showHideLayers('galery2','','hide','magazin2','','hide','novosti2','','show','tutorijali2','','hide','digitalarts2','','hide')">
<p><font face="Eras Bold ITC" style="font-size: 12pt">
<a style="text-decoration: none" href="index.htm">Home</a></font></p>
</div>

<!--Industrial Tab-->
<div id="magazin" style="position:absolute; left:273px; top:175px; width:100px; height:15px; z-index:10" onmouseover="MM_showHideLayers('galery2','','hide','magazin2','','show','novosti2','','hide','tutorijali2','','hide','digitalarts2','','hide')">
<p><p><font face="Eras Bold ITC" style="font-size: 12pt">
<a href="#" style="text-decoration: none">Industrial</a></p></font>
</div>
<div id="magazin2" style="position:absolute; left:273px; top:196px; height:25px; z-index:12; visibility: hidden; width:147px">
<table width=147 border="0" cellspacing="0" cellpadding="5" bgcolor=#333333>
<tr>
<td><span><p><font face="Eras Medium ITC" size="2"><a href=Machinery.htm>Machinery</a></font></span></p>
</td>
</tr>
<tr>
<td>
<p><font face="Eras Medium ITC" size="2"><a href=UsedMachinery.htm>Used Machinery</a> </font></p>
</td>
</tr>
<tr>
<td>
<p><font face="Eras Medium ITC" size="2"><a href=StandingTimber.htm>Standing Timber</a> </font></p>
</td>
</tr>
<tr>
<td>
<p><font face="Eras Medium ITC" size="2"><a href=Millwork.htm>Millwork</a> </font></p>
</td>
</tr>
<tr>
<td>
<p><font face="Eras Medium ITC" size="2"><a href=HardwoodFlooring.htm>Hardwood Flooring</a> </font></p>
</td>
</tr>
</table>
</div>

daveVk

11:51 pm on Mar 24, 2009 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member



frames array is IE only.

function MM_findObj(n, d) { //v3.0
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=MM_findObj(n,d.layers[i].document); return x;
}

hollopeterb

1:33 pm on Mar 25, 2009 (gmt 0)

10+ Year Member



Thanks! do you know of any quick fixes for this? I didnt write the code so I am somewhat limited in knowledge at this point

daveVk

1:19 am on Mar 26, 2009 (gmt 0)

WebmasterWorld Senior Member 10+ Year Member



try substituting

parent.document.getElementsByTagName('iframe')
or
parent.document.getElementsByTagName('frame')

depending if frames or iframes are used, for

parent.frames