2010-01-29 81 views
1

我有這樣的代碼的setInterval並在window.onload問題

window.onload = function() {    
    function foo() { 
     alert("test"); 
    } 
    setInterval("foo()",500) 
} 

當我使用它,它的工作原理在window.onload置身其中返回undefined ...。任何人都能解釋我爲什麼?

回答

9

setInterval()中使用字符串命令將嘗試在全局(窗口)作用域中查找函數,但由於該函數是在本地作用域中定義的,因此將不會找到該函數。您應該將該功能本身改爲setInterval()

window.onload = function() {    
    function foo() { 
     alert("test"); 
    } 
    setInterval(foo, 500); 
} 
0

試試這個:

function foo() { 
    alert("test"); 
} 

window.onload = function() {    
    setInterval("foo()",500) 
} 

這對我的作品。

0

或者,您可以在呼叫中定義的功能給setInterval:

window.onload = function() { 
    setInterval(
     function foo() { 
      alert("test"); 
     }, 
     500 
    ); 
}