setInterval和window.onload问题
我有这段代码
window.onload = function() {
function foo() {
alert("test");
}
setInterval("foo()",500)
}
返回未定义...当我在 window.onload 之外使用它时它可以工作。谁能解释一下为什么?
I have this code
window.onload = function() {
function foo() {
alert("test");
}
setInterval("foo()",500)
}
Which returns undefined...When i use it outside the window.onload it works. Can anyone explain me why?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
在
setInterval()
中使用字符串命令将尝试在全局(窗口)作用域中查找该函数,但由于该函数是在本地作用域中定义的,因此不会找到它。您应该将函数本身传递给setInterval()
。Using a string command in
setInterval()
will try to look for the function in the global (window) scope, but since the function is defined in a local scope, it won't be found. You should pass the function itself tosetInterval()
instead.试试这个:
它对我有用。
Try this:
It works for me.
或者,您可以在 setInterval 调用中定义该函数:
Alternatively, you can define the function within the call to setInterval:
您应该将该函数设置为
setInterval()
。另请记住清除
window.onunload
或window.beforeonunload
上的间隔You should set the function to
setInterval()
instead.Also remember clearing the interval on
window.onunload
orwindow.beforeonunload