2012-11-05 83 views
0

這是我的代碼:Javascript在頁面加載?

var myarray=[(lots of things)]; 
var elem=document.getElementById('subtitle'); 
window.setInterval(function(){ 
    elem.innerHTML=myarray[Math.round((myarray.length-1)*Math.random())]; 
},30000); 

這工作得很好,除了前30秒,沒有任何反應。我必須等到它重新發生時纔會發生。我可以在頁面加載時從myarray中選擇一個嗎?謝謝

+0

'window.onload'事件... ...谷歌... EUH – 2012-11-05 21:48:04

回答

3

它必須等待30秒,因爲當你設置一個時間間隔時,它不會馬上點燃它!分解成一個函數並調用它。如果將腳本添加到頁面上的元素後面,則不必擔心window.onload或文檔已準備就緒。

<div id="subtitle"></div> 
<script> 
    (function(){ 
     var myarray=[(lots of things)]; 
     var elem=document.getElementById('subtitle'); 

     function dispNum() { 
      elem.innerHTML=myarray[Math.round((myarray.length-1)*Math.random())]; 
      window.setTimeout(dispNum,30000); 
     }  
     dispNum(); 
    })(); 
</script> 

reunning例如:jsFiddle

+0

你100%的絕對正確保每個頁面加載需要確切30秒? – 2012-11-05 21:49:34

+0

@ H2CO3,海報說它只有30秒纔會運行。他們從不在頁面啓動時調用它。 – epascarello