function roll(divName,imgheight_close,imgwidth_close)
{
    var bdy = (document.documentElement && document.documentElement.clientWidth)?document.documentElement:document.body;    document.getElementById(divName).style.top=bdy.scrollTop+bdy.offsetHeight-imgheight_close;
    document.getElementById(divName).style.left=bdy.scrollLeft+bdy.offsetWidth-imgwidth_close;
    
    setTimeout("roll('"+divName+"','"+imgheight_close+"','"+imgwidth_close+"');",50)}这段代码在ie中是可以让id为divName的层随着滚动条移动的,但为什么在非ie浏览其中却是不可以正确显示?
该怎么修改,请教中……

解决方案 »

  1.   

    确定id="divName"存在
    不要仅是name="divName"而没有id="divName"
      

  2.   

    绝对存在,这是div层id的变量来的,调用函数时也会在ie中正确显示。document.write("<div id='"+divName+"' style=……我是这样来写div层的
      

  3.   

     document.getElementById(divName).style.top=bdy.scrollTop+bdy.offsetHeight-imgheight_close +"px";
        document.getElementById(divName).style.left=bdy.scrollLeft+bdy.offsetWidth-imgwidth_close +"px";
        
        setTimeout("roll('"+divName+"','"+imgheight_close+"','"+imgwidth_close+"');",50)
    ==> 用匿名函数可读性强
        setTimeout(function(){roll(divName,imgheight_close,imgwidth_close);},50)
      

  4.   

    在加上 +"px"; 之后在非ie浏览器中确实可以显示,可是却不可以浮动,为何?
      

  5.   

    clientWidth其它浏览器认识吗?
      

  6.   

    不管认识不认识都远选一个的,这行应该没问题的……
    其实非ie在加上px之后也可以显示,可是不会浮动……
    不知道原因……
      

  7.   

    function roll(divName,imgheight_close,imgwidth_close)
    {
        var bdy = (navigator.userAgent.toLowerCase().indexOf('opera') == -1)?document.documentElement:document.body;    document.getElementById(divName).style.top=(window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop)+bdy.clientHeight-imgheight_close;
        document.getElementById(divName).style.left=bdy.scrollLeft+bdy.clientWidth-imgwidth_close +"px";
        
        setTimeout("roll('"+divName+"','"+imgheight_close+"','"+imgwidth_close+"');",50)}
      

  8.   

    function roll(divName,imgheight_close,imgwidth_close)
    {
      var bdy = (navigator.userAgent.toLowerCase().indexOf('opera') == -1)?document.documentElement:document.body;  document.getElementById(divName).style.top=(window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop)+bdy.clientHeight-imgheight_close+"px";
      document.getElementById(divName).style.left=bdy.scrollLeft+bdy.clientWidth-imgwidth_close +"px";
       
      setTimeout("roll('"+divName+"','"+imgheight_close+"','"+imgwidth_close+"');",50)}