这段js在火狐下怎么不行啊
function moveAlong(layerName, paceLeft, paceTop, fromLeft, fromTop)
{
clearTimeout(eval(layerName).timer)
if(eval(layerName).curLeft != fromLeft)
{
if((Math.max(eval(layerName).curLeft, fromLeft) - Math.min(eval(layerName).curLeft, fromLeft)) < paceLeft){eval(layerName).curLeft = fromLeft}
else if(eval(layerName).curLeft < fromLeft){eval(layerName).curLeft = eval(layerName).curLeft + paceLeft}
else if(eval(layerName).curLeft > fromLeft){eval(layerName).curLeft = eval(layerName).curLeft - paceLeft}
if(ie){document.all[layerName].style.left = eval(layerName).curLeft}
if(ns){document.master[layerName].left = eval(layerName).curLeft}
}
if(eval(layerName).curTop != fromTop)
{
   if((Math.max(eval(layerName).curTop, fromTop) - Math.min(eval(layerName).curTop, fromTop)) < paceTop)
   {eval(layerName).curTop = fromTop}
else if(eval(layerName).curTop < fromTop){eval(layerName).curTop = eval(layerName).curTop + paceTop}
else if(eval(layerName).curTop > fromTop){eval(layerName).curTop = eval(layerName).curTop - paceTop}
if(ie){document.all[layerName].style.top = eval(layerName).curTop}
if(ns){document.master[layerName].top = eval(layerName).curTop}
}
eval(layerName).timer=setTimeout('moveAlong("'+layerName+'",'+paceLeft+','+paceTop+','+fromLeft+','+fromTop+')',30)
}function setPace(layerName, fromLeft, fromTop, motionSpeed)
{
eval(layerName).gapLeft = (Math.max(eval(layerName).curLeft, fromLeft) - Math.min(eval(layerName).curLeft, fromLeft))/motionSpeed
eval(layerName).gapTop = (Math.max(eval(layerName).curTop, fromTop) - Math.min(eval(layerName).curTop, fromTop))/motionSpeed
moveAlong(layerName, eval(layerName).gapLeft, eval(layerName).gapTop, fromLeft, fromTop)
}
function FixY()
{
if(document.body.scrollTop>0){
if(ie){sidemenu.style.top = document.body.scrollTop+90}
}
else
{
if(ie){sidemenu.style.top = document.documentElement.scrollTop+90}
}
if(ns){sidemenu.top = window.pageYOffset+90}
}

解决方案 »

  1.   

    firefox 不支持document.all
    document.all[layerName]好像是根据name来获得控件,这是个很不好的方法,应该根据ID来获取。document.all换成document.getElementById 或是 document.getElementByName
      

  2.   

    没用document.all
    if(ie){document.all[layerName].style.top = eval(layerName).curTop}
    if(ns){document.master[layerName].top = eval(layerName).curTop}
      

  3.   

    gapLeft、gapTop、curTop、curLeft是哪里来的?
    自定义的吗???
    问题出在这里吧
      

  4.   

    我给你看看<script language="javascript">
                                 
             window.onerror = function(){}
    var expandState = 0;

    function expand(){

    if(expandState == 0){setPace('master', 0, 10, 10); if(ie){document.menutop.src = 'Images/menui.jpg'}; expandState = 1;}
    else{setPace('master', -196, 10, 10); if(ie){document.menutop.src='Images/menuo.jpg'}; expandState = 0;}
    }
    document.write("<style type=text/css>#master {LEFT: -196px; POSITION: absolute; TOP: 90px; VISIBILITY: visible; Z-INDEX: 999}</style>")
    document.write("<table id=master width='218' border='0' cellspacing='0' cellpadding='0'><tr><td></td><td rowspan='2' valign='top'><img id=menu onMouseOver=javascript:expand() border=0 height=100 name=menutop src=Images/menuo.jpg width=30></td></tr>");
    document.write("<tr><td valign='top'><table width='101%' border='0' cellpadding='0'><tr><td height='400' valign='top'><table width=100% height='100%' border=0 cellpadding=0 cellspacing=5 bordercolor='#666666' bgcolor=#006699 style=FILTER: alpha(opacity=90)><tr>");
    document.write("<td align='center' bordercolor='#ecf6f5'><font color=FFFFFF>ONLINE SERVICES<br><font size=+0.5><strong>在线服务中心</strong></font></font></td></tr><tr><td valign='top' bordercolor='#ecf6f5' align='center'>");
    document.write("<iframe width='100%'  marginwidth='0' marginheight='0' height='350' src='http://"+window.location.host+"/kfu.html'  frameborder=0 allowTransparency='true'></iframe></td></tr></table></td></tr></table></td></tr></table>");
    var ie = document.all ? 1 : 0
    var ns = document.layers ? 1 : 0
    var master = new Object('element')
    master.curLeft = -200;   master.curTop = 10;
    master.gapLeft = 0;      master.gapTop = 0;
    master.timer = null;
    if(ie){var sidemenu = document.all.master;}
    if(ns){var sidemenu = document.master;}
    setInterval('FixY()',100);
                           
                                  
    </script>
      

  5.   

    gapLeft、gapTop、curTop、curLeft火狐不识别这些属性吧!
      

  6.   

    建议开发的时候用fireBUG进行调试,有什么问题都清晰可见,是个浏览器插件,在网上搜下