我目前正在编写一个javascript程序,我想刷新一个网页,然后继续调用一个修改了新刷新页面的函数。
但是,每当我调用location.reload()时,页面最终会在刷新之前执行操作,尽管事实上我已经在代码中刷新之后放置了它们。刷新后如何让页面形成动作?
答案 0 :(得分:3)
您可以使用sessionStorage作弊:
//in some function:
sessionStorage.setItem('onReload', 'doFn1');
location.reload();
//elsewhere, to be called on page load:
if(sessionStorage.getItem('onReload') === 'doFn1') {
sessionStorage.setItem('onReload', '');
// do your code
}
但最终,这不是一个好习惯。你为什么要重新加载页面?您可以在没有页面重新加载的情况下完成您想要的。
答案 1 :(得分:1)
Javascript在页面重新加载后没有继续执行,它开始新鲜。
如果你真的需要刷新页面然后开始一个特定的操作,你必须要有一些方法告诉你的代码从它停止的地方开始。
解决问题的一种方法是在url中添加一个哈希值,该哈希值将作为继续执行的标志。
window.location.href += "#continueScript";
location.reload();
然后在你的函数中检查哈希值。
if(window.location.hash == "#continueScript") {
continueMyScript();
};