是否可以从手动重新加载 (location.reload();) 中排除脚本执行?
Is it possible to exclude a script execution from manual reload (location.reload();)?
关于 location.reload();
的相当基本的问题:是否可以从重新加载中排除特定脚本的执行(当页面 visited/loaded 定期执行时执行)?
就在 reload
之前,分配给 sessionStorage
项。然后,在您的其他脚本中,测试是否填充了 sessionStorage
项。如果已填充,则这不是初次访问;不要继续执行。否则,照常继续。例如:
function doReload() {
sessionStorage.hasVisited = 'true';
location.reload();
}
您要有条件地执行的其他脚本:
if (!sessionStorage.hasVisited) {
// execute body of script
}
sessionStorage
将自动清除新会话,包括从新 window 访问该站点。如果您想要更持久的东西,请使用 localStorage
,它会一直存在,直到您自己清除它。
关于 location.reload();
的相当基本的问题:是否可以从重新加载中排除特定脚本的执行(当页面 visited/loaded 定期执行时执行)?
就在 reload
之前,分配给 sessionStorage
项。然后,在您的其他脚本中,测试是否填充了 sessionStorage
项。如果已填充,则这不是初次访问;不要继续执行。否则,照常继续。例如:
function doReload() {
sessionStorage.hasVisited = 'true';
location.reload();
}
您要有条件地执行的其他脚本:
if (!sessionStorage.hasVisited) {
// execute body of script
}
sessionStorage
将自动清除新会话,包括从新 window 访问该站点。如果您想要更持久的东西,请使用 localStorage
,它会一直存在,直到您自己清除它。