页面没完全加载完.在window.onload中执行init函数,而且你要注意一下marqueesHeight的类型var   marquees   =   document.getElementById("marquees"); 
var   templayer   =   document.getElementById("templayer"); 
var   len   =   marquees.style.height.length; 
//parseInt下就得了
var marqueesHeight=parseInt(marquees.style.height);   function init() 

    templayer.innerHTML=""; 
    marquees.innerHTML = "111<br>222<br> "; 
    
    if(marquees.innerHTML!="") 
    { 
            while(templayer.offsetHeight<marqueesHeight) 
            { 
                templayer.innerHTML   +=   marquees.innerHTML; 
            } 
            marquees.innerHTML=templayer.innerHTML+templayer.innerHTML; 
    } 

//要完全加载了页面才执行init函数
window.onload=init; 

解决方案 »

  1.   

    我去试试看,楼上能不能解释下
    我在后面init();的时候页面那里还没有加载呢?
    我觉得跟window.onload=init;一样啊
      

  2.   

    浏览器是碰到js代码就执行,你执行init时下面的html还没生成
      

  3.   

    测试了,用window.onload=init;问题依旧
      

  4.   

    Page.RegisterStartupScript("key", "<script language=''javascript>init();</script>");
    接分
      

  5.   


    <div id="marquees" style="width:150px; height:190px; overflow:hidden; text-align:left;"> 
    </div> 
    <div id="templayer" style="visibility:hidden; position:absolute; z-index:1"> 
    </div> 
    B.aspx页面中: 
            <table> 
                <tr> 
                  <td> 
                    <uc1:AfficheBar ID="AfficheBar1" runat="server" Height="20px" BackGroundCorlor="#D8C3A4" src="../news.aspx" Width="200px" /> 
                  </td> 
                </tr> 
            </table>
            
            
    <script language="JavaScript" type="text/javascript"> 
      var marquees = document.getElementById("marquees"); 
      var templayer = document.getElementById("templayer"); 
      var len = marquees.style.height.length; 
      var marqueesHeight=marquees.style.height.substr(0,len-2); function init() 

      templayer.innerHTML=""; 
      marquees.innerHTML = "111 <br> 222 <br> "; 
      
      if(marquees.innerHTML != "") 
      { 
        while(templayer.offsetHeight <marqueesHeight) 
        { 
          templayer.innerHTML += marquees.innerHTML; 
        } 
        marquees.innerHTML=templayer.innerHTML+templayer.innerHTML; 
      } 

    init(); 
    </script> 
      

  6.   

    下面的输出不为0啊,检查你的代码是不是有id重复的.
    <table> 
                                    <tr> 
                                            <td> 
    <div   id="marquees"   style="width:150px;   height:190px;   overflow:hidden;   text-align:left;"> 
    </div> 
    <div   id="templayer"   style="visibility:hidden;   position:absolute;   z-index:1"> 
    </div>   
    </td> 
                                    </tr> 
                            </table> 
    <script   language="JavaScript"   type="text/javascript"> var   marquees   =   document.getElementById("marquees"); 
    var   templayer   =   document.getElementById("templayer"); 
    var   marqueesHeight=parseInt(marquees.style.height);   function   init() 

        templayer.innerHTML=""; 
        marquees.innerHTML   =   "111 <br> 222 <br> "; 
        
        if(marquees.innerHTML   !=   "") 
        { 
                while(templayer.offsetHeight <marqueesHeight) 
                { 
                    templayer.innerHTML   +=   marquees.innerHTML; 
                } 
                marquees.innerHTML=templayer.innerHTML+templayer.innerHTML; 
        } 
    alert(marquees.offsetHeight+"|"+templayer.offsetHeight)

    window.onload=init; 
    </script>