在我网站的一页上,创建了计时器。我需要能够访问其他页面上的计时器以查看剩余时间。但是我无法使全局数组正常工作。
在网站的开头,我创建了all_timers数组(如果为空)。然后在计时器函数中,将计时器的ID推入该数组。但是当我重新加载页面时,数组始终为空。
运行“计时器”页面时,控制台显示“已按下”。但是只要页面更新,它就会显示“ create new”。
我对使用窗口感到困惑。有些帖子说要使用它,有些没有提到它,有的表明它用于变量的所有实例,而不仅是在创建变量时。 Sp我是否错误地创建了全局?尽管我尝试了许多变体,但我只是在这里显示了基本用法。有人可以指出我所缺少的吗?请注意,这是简化的代码。实际上确实调用了timer函数。
<head>
<script>
if (typeof all_timers !== 'undefined' && all_timers.length > 0) {
console.log('found '+all_timers.length);
for (var i = 0; i < all_timers.length; i++) {
console.log('main timer '+all_timers[i]);
}
} else {
console.log('create new');
window.all_timers = new Array();
}
</script>
</head>
<body>
<script>
function createfunc(idx) {
if ($("#time-left-"+idx).length === 0) {
clearInterval(timerID[idx]);
} else {
timerID[idx] = setInterval(function() {
if (show_timer > 0) {
all_timers.push('some thing'+idx);
console.log('pushed');
} else {
clearInterval(timerID[idx]);
}
}, 1000);
}
}
</script>
</body>
答案 0 :(得分:2)
您将需要使用local storage保存全局时间戳,或者将时间戳作为URL parameter传递。
无论您使用本地存储还是url参数,您都只能在页面之间传递字符串。