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

実際には、既存のコードに 1 つの小さな変更を加えるだけで済みます。に変更document.location.reload(true);document.location.reload();ます。

を使用trueすると、ブラウザはサーバーからページを再度取得するよう強制されます。つまり、ページ上の場所が失われます。を削除するtrueと、ブラウザはキャッシュからページをロードし、ページ上の場所を保持します。

ただし、ページを自動的にリロードする理由が、サーバーが変更したページの最新バージョンを取得することである場合、これは役に立たない可能性があります。

Firefox 12.0 の Firebug でテスト済み。

于 2012-08-12T04:12:42.880 に答える