1

我有一个带有以下脚本的 HTML:

<script type="text/javascript">
    function doRefreshWithInterval() {
        setTimeout("doRefresh()", 60000 );
    }

    function doRefresh() {
        window.location.reload(true);
    }

    if (window.location.href.indexOf("Dashboard.jspa") >= 0) {
        doRefreshWithInterval();
    }
</script>

定期刷新页面。问题是当我向下滚动页面时(它是一个长页面),并且在某些浏览器(特别是 Firefox)上发生刷新时,浏览器会转到页面顶部而不是我所在的位置。有什么方法可以防止这种情况,并让 Firefox 在刷新后向下滚动到最后一个位置?

4

2 回答 2

3

我想到的一个解决方案是:

  1. 刷新前,获取页面的垂直位置
  2. 将该号码存储在 cookie 中
  3. 刷新
  4. 在页面加载时,查看是否有页面位置的 cookie
  5. 通过脚本滚动到该位置
于 2012-08-12T04:09:23.313 回答
2

实际上,您只需要对现有代码进行微小的更改。更改document.location.reload(true);document.location.reload();

使用true您强制浏览器再次从服务器获取页面,这意味着您在其上的位置将丢失。当您删除 时true,浏览器会从缓存中加载页面,保留您在页面上的位置。

但是,如果您自动重新加载页面的原因是为了获取服务器可能已修改的页面的最新版本,这可能没有帮助。

在 Firefox 12.0 中使用 Firebug 进行测试。

于 2012-08-12T04:12:42.880 回答