リロードさせた後、スクロール位置を復元

IE6,IE11,Firefoxにて確認。

keep_scroll_reload() を呼んでGET値にx,y座標を渡し、
リロード後にスクロールする

// リロード TODO: ?が無い場合対応
function keep_scroll_reload() {
          var re = /&page_x=(\d+)&page_y=(\d+)/;
          var page_x = document.documentElement ? document.documentElement.scrollLeft : document.body.scrollLeft;
          var page_y = document.documentElement ? document.documentElement.scrollTop : document.body.scrollTop;
          var position = '&page_x=' + page_x + '&page_y=' + page_y;
          if(!url.match(re)) {
                  //初回
                  location.href = url + position;
          } else {
                  //2回目以降
                  location.href = url.replace(/&page_x=(\d+)&page_y=(\d+)/,position);
          }
}

// スクロール位置を復元
function restore_scroll() {
        var re = /&page_x=(\d+)&page_y=(\d+)/;
        if(window.location.href.match(re)) {
                var position = window.location.href.match(re)
                window.scrollTo(position[1],position[2]);
        }
}

(window.onload = function() {
        restore_scroll();
})();
ユーザー登録して、Qiitaをもっと便利に使ってみませんか。
  1. あなたにマッチした記事をお届けします
    ユーザーやタグをフォローすることで、あなたが興味を持つ技術分野の情報をまとめてキャッチアップできます
  2. 便利な情報をあとで効率的に読み返せます
    気に入った記事を「ストック」することで、あとからすぐに検索できます
コメント
この記事にコメントはありません。
あなたもコメントしてみませんか :)
すでにアカウントを持っている方は
ユーザーは見つかりませんでした