javascript重新加载与滚动相结合

时间:2014-08-30 19:57:45

标签: javascript

我有以下javascript函数;当我单独使用重载时它工作正常,当我单独使用滚动时工作正常;但是当我将两者结合在一起时它不会滚动;我试图改变顺序,但没有帮助;

function myFunction() {
    window.open("http://www.example.com");
    location.reload(true);
    window.scrollBy(0,1000);
}

提前感谢您的帮助。

2 个答案:

答案 0 :(得分:2)

您可以将哈希值设置为somehash,然后重新加载页面。之后,在您的正文onload中,检查哈希值,如果哈希为somehash,请滚动页面。

function myFunction() {
    window.open("http://www.example.com");
    location.hash = 'somehash';
    location.reload(true);
}

将以下函数添加到页面onload事件处理程序。

function scrollOnload() {
    if (location.hash == 'somehash') {
        window.scrollBy(0,1000);
    }
}

答案 1 :(得分:1)

如果您想在重新加载后让浏览器执行某些操作,则需要将标记保留在某处。以下是使用sessionStorage

的示例
function myFunction() {
    window.open("http://www.example.com");
    sessionStorage.setItem('scroll', true);
    location.reload(true);
}

document.body.addEventListener('load', function () {
    if (sessionStorage.getItem('scroll')) {
        window.scrollBy(0, 1000);
        sessionStorage.removeItem('scroll');
    }
});