我有这段代码
window.onload = function() {
function foo() {
alert("test");
}
setInterval("foo()",500)
}
返回undefined ...当我在window.onload之外使用它时,它可以工作。谁能解释我为什么?
答案 0 :(得分:9)
在setInterval()
中使用字符串命令将尝试在全局(窗口)范围内查找该函数,但由于该函数是在本地范围内定义的,因此将无法找到该函数。您应该将函数本身传递给setInterval()
。
window.onload = function() {
function foo() {
alert("test");
}
setInterval(foo, 500);
}
答案 1 :(得分:0)
试试这个:
function foo() {
alert("test");
}
window.onload = function() {
setInterval("foo()",500)
}
它对我有用。
答案 2 :(得分:0)
或者,您可以在setInterval的调用中定义函数:
window.onload = function() {
setInterval(
function foo() {
alert("test");
},
500
);
}
答案 3 :(得分:0)
您应该将功能设置为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);
};