如果我导航到另一个页面,setTimeout不起作用

iJa*_*ade 2 javascript jquery

我试图在特定的点击事件后10秒执行一个javascript.我使用了 setTimeout

setTimeout(function () {
    alert('hello');
}, 10000);
Run Code Online (Sandbox Code Playgroud)

它可以工作,如果我在点击后在同一页面.但如果我导航到其他页面它不起作用.因此,假设它setTimeout适用于特定页面而不是整个应用程序是正确的.

有什么方法可以做我想要实现的目标.

小智 7

浏览器中发生的一切都是文档绑定的.当您离开当前文档(页面)时,它将被废弃,包括计时器 - 正如预期的那样.

所以你在这里尝试的只是使用计时器是不可能的.

可以根据计时器开始时间和完成时间编写localStorage(或sessionStorage)项目,并从新页面(如果它来自同一来源)您读取项目并计算差异并启动新计时器(或添加参数作为您导航到的URL的一部分).