如何在加载页面后刷新浏览器

时间:2011-08-10 15:25:03

标签: javascript page-refresh

我有一个方案是在第一次或一次加载页面后刷新浏览器。 因为加载页面时数据显示不正确,当我刷新浏览器时它正在显示。我不知道原因。

非常感谢

2 个答案:

答案 0 :(得分:0)

所以你只想让浏览器刷新一次?做这样的事。

window.onload = function(){
    if(!document.location.hash){
        window.location = "#loaded";
    }
}

或jquery

$(document).ready(function(){
    if(document.location.hash){
        window.location = "#loaded";
    }
});

但老实说,这只是一个临时解决方案。尽可能多的尝试通过快速修复来掩盖它。我保证它会回来困扰你。编写良好的结构化代码将持续一生,并且可以在未来的项目中重复使用。

答案 1 :(得分:0)

总是,你将不得不使用一些JavaScript。您想要的是在页面完全加载时运行刷新代码。您可以使用HTML onload事件,但这有问题(例如,它会在加载任何图像之前触发)。我建议使用JQuery的ready() event,如果你想确保它在整个页面加载后触发。

示例:

// NOTE: This will only work with JQuery loaded.
$(document).ready(function(){
    location.reload(true);
});

在第一页加载时只启动它会有点棘手。您可以在URL中添加一个锚后缀,以跟踪您是否已刷新页面,然后只有在URL中不存在时才刷新:

$(document).ready(function(){
    if(location.hash != "#")
    {
        // Set the URL to whatever it was plus "#".
        // (The page will NOT automatically reload.)
        location = "#";

        // Reload the page.
        location.reload(true);
    }
});

或者,您可以使用查询字符串,因为这将在更改时自动刷新页面:

$(document).ready(function(){
    var marker = 'r'; // 'r' is for "refreshed"
    if(location.search != "?"+marker)
    {
        // Set the URL to whatever it was plus "?r".
        // (This will automatically force a page reload.)
        location = "?"+marker;
    }
});

警告:使用这些示例中的任何一个,如果您的用户在将“#”或“?r”标记添加到网址后为该网页添加书签,则该网页将不会刷新重新访问该页面。如果你想要它是防弹的,你可能不得不使用cookie。