如何在调整大小时刷新页面?

时间:2009-12-02 15:55:24

标签: scripting resize window refresh

是否有一个脚本可以在重新调整页面大小时刷新浏览器?更具体地说,模仿浏览器刷新按钮或F5?我找到了两个,但他们并没有做我想要的事情;

<script type="text/javascript">
var currheight = document.documentElement.clientHeight;
window.onresize = function(){
    if(currheight != document.documentElement.clientHeight) {
        location.replace(location.href);
    }    
}
</script>

<body onResize="window.location=window.location;">

这两个问题是它们似乎完全重置了页面,因为使用浏览器刷新功能会使一些用户所做的更改保持不变(例如,在特定的哈希处)这是我需要的。

那么是否有一种方法可以使用类似于单击浏览器刷新的脚本刷新重新调整大小的窗口?我不明白为什么会有差异但是有。

感谢。

3 个答案:

答案 0 :(得分:2)

是的,您可能想看看一些JavaScript事件。有一个OnResize事件。

这是一个让您了解事件的链接:
http://www.devarticles.com/c/a/JavaScript/OnReset-OnResize-and-Other-JavaScript-Events/

就重新加载页面而言,您也可以这样做:
http://www.mediacollege.com/internet/javascript/page/reload.html

至于保留用户值,您可以将它们保留在会话中。

答案 1 :(得分:2)

这是完美的解决方案:

我已经包含超时1秒,即浏览器将在窗口调整大小1秒后刷新

$(window).resize(function() {
    setTimeout( function(){
        window.location.href = window.location.href;
    },1000); 
});

没有超时

$(window).resize(function() {
    window.location.href = window.location.href;
});

注意: 您也可以使用window.location.reload()代替window.location.href = window.location.href

window.location.reload()使用POST数据重新加载当前页面,而
window.location.href=window.location.href不包含POST数据

- 希望有所帮助

答案 2 :(得分:1)

试试这个:

<![if !IE]> <body onresize="document.location=window.location;"> <![endif]>
<!--[if IE]> <body onresize="window.location.reload();"> <![endif]-->