2013-11-23 53 views
0

我在此處附上我的代碼以使用Javascript的setInterval()函數。代碼只運行一次,因爲它沒有運行docoment.write來在瀏覽器中寫入i的值。任何人都可以請讓我知道我是哪個地方錯我的代碼:HTML Javascript - setInterval未正常運行

<html> 
<head> 
    <script type="text/javascript"> 
    function inCreas(){ 
     var i = 0; 
     var interval = setInterval(func,2000); 
     function func(){i++; 
      document.write("<p>This is the value of i : "+ i +"</p>"); 
      } 
    } 
    </script> 
    </head> 
    <body onload="inCreas()"> 

    </body> 
    </html> 

我已經在IE 8和Firefox 24.0試過,但結果是一樣的。

在此先感謝。 Vasudev

+1

文檔加載完成後,不能使用'document.write'。選擇要添加內容的元素,然後創建新的DOM節點並追加它們或將額外的HTML字符串追加到其「innerHTML」屬性中。 –

+0

你不能?它可以在Chrome上運行。 – PMint

回答

1

document.write只在文檔「打開」時纔有效。當達到html標籤時,它會關閉。之後,致電document.write打開一個全新的文檔。

現在這種情況發生在你的頁面:創建

  1. 的原稿,並且在onload函數註冊。
  2. 關閉文檔
  3. setInterval函數觸發
  4. 因爲現有的文件已經關閉,一個新的創建,完全覆蓋舊的。你可以通過在body標籤中加入一些東西來測試它 - 它會在document.write執行後立即消失。這會創建一個全新的上下文 - 您的setInterval也不會再出現在新文檔中。

要達到您想要的效果,您可以改用innerHTML - 請參閱DEMO