setInterval的和在window.onload问题
-
23-09-2019 - |
题
我有这样的代码
window.onload = function() {
function foo() {
alert("test");
}
setInterval("foo()",500)
}
返回未定义...当我使用它,它的工作原理在window.onload之外。任何人能解释我为什么?
解决方案
在setInterval()
使用字符串命令将试图寻找在全球(窗口)范围的功能,但由于该功能是在本地范围内定义的,它不会被发现。你应该通过函数本身,而不是到setInterval()
。
window.onload = function() {
function foo() {
alert("test");
}
setInterval(foo, 500);
}
其他提示
尝试这种情况:
function foo() {
alert("test");
}
window.onload = function() {
setInterval("foo()",500)
}
这对我的作品。
可替换地,可以在呼叫给setInterval中定义的函数:
window.onload = function() {
setInterval(
function foo() {
alert("test");
},
500
);
}
,则应该设置的功能,而不是setInterval()
还记得清除上window.onunload
或window.beforeonunload
间隔
const CheckFoo = () => {
const start = new Date().getTime();
console.log("check", start);
};
window.onload = function foo() {
window.setInterval(CheckFoo, 500);
};
window.onunload = function foo() {
window.clearInterval(CheckFoo);
};
不隶属于 StackOverflow