是否可以为location.reload()添加一个javascript for / while循环;

问题描述 投票:0回答:3

我的Wordpress网站有插件冲突。因此,当我单击菜单中的某个页面时,它会卡住,但在重新加载页面时会进行修复。

我的方法是自动刷新页面(已单击的菜单链接),以便页面正确加载。

搜索了几天之后,我还没有找到确切的方法。我用

location.reload(true);

但它一直在重装。我也试过了

location.reload(true);
window.stop();

但它在完成页面加载到100%之前停止加载。

所以我的问题是,我们可以添加一个循环来停止重新加载吗?例…

在2次重新加载后,js代码将停止

希望有人可以帮助我。谢谢!

javascript loops reload
3个回答
1
投票

试试这段JavaScript,它将重载计数存储在LocalStorage中:

if(typeof(localStorage.getItem('rlcount')) == 'undefined'){
    localStorage.setItem('rlcount',0);
}
if(localStorage.getItem('rlcount') < 2){
    localStorage.setItem('rlcount',localStorage.getItem('rlcount')+1);
    window.location.reload();
}else{
    localStorage.removeItem('rlcount');
}

但是,请注意重新加载页面不是一个好的错误修复。


0
投票

虽然我鼓励您尝试修复导致您描述的行为的根问题,但您可以执行以下操作来重新加载页面两次:

window.onload = function() {
    if (!window.location.hash) {
        window.location = window.location + '#loadedOnce';
        alert("Reloading first time...");
        window.location.reload();
    } else if (window.location.hash === "#loadedOnce") {
        window.location = window.location.hash.replace("#loadedOnce", "#loadedTwice");
        alert("Reloading second time...");
        window.location.reload();
    } else if (window.location.hash === "#loadedTwice") {
        // Page reloaded twice, do whatever...
    }   
}

这样就可以在URL中使用哈希,因此不需要使用localStorage API(尽管如果浏览器支持它,这也是一种非常好的方法,如果你的URL中已经有哈希值,那么它可能会更好)。


0
投票

感谢您花时间回答我的问题...我找到了一个简单的方法(虽然不是循环)。不确定这是否正常但是当我添加“return”时它正在工作。

location.reload();
return;

添加此命令时。它只需重新加载一次。

© www.soinside.com 2019 - 2024. All rights reserved.