JavaScript

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

More than 1 year has passed since last update.

IE6,IE11,Firefoxにて確認。

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

// リロード TODO: ?が無い場合対応
function keep_scroll_reload() {
        var re = /&page_x=(\d+)&page_y=(\d+)/;
        var position = '&page_x=' + document.body.scrollLeft + '&page_y=' + document.body.scrollTop;
        if(!window.location.href.match(re)) {
                //初回
                window.location.href = window.location.href + position;
        } else {
                //2回目以降
                window.location.href = window.location.href.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]);
        }
}
restore_scroll();