2010-01-29 6 views
1

У меня есть этот кодsetInterval и window.onload проблема

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

который возвращает неопределенное ... Когда я использовать его вне window.onload он работает. Может ли кто-нибудь объяснить мне, почему?

ответ

9

Использование команды string в 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 
    ); 
} 
Смежные вопросы