JavaScript重新加载滚动
我有以下JavaScript函数;当我单独使用重新加载时它工作正常,并且在我单独使用滚动时工作正常;但是当我将两者结合在一起时它不会滚动;我试图改变序列,但没有帮助;JavaScript重新加载滚动
function myFunction() {
window.open("http://www.example.com");
location.reload(true);
window.scrollBy(0,1000);
}
在此先感谢您的帮助。
您可以将散列设置为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);
}
}
不错的选择,虽然我会选择比“somehash”更有意义的东西。 :) – Pavlo 2014-08-30 20:14:08
谢谢nisargjhaveri;我会尝试一下,并让你知道。 – Abbas1999 2014-08-30 20:14:56
@Pavlo,很明显:P – nisargjhaveri 2014-08-30 20:24:15
如果您想让浏览器在重新加载后做某些事情,您需要将标志保留在某处。这里是一个使用示例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');
}
});
非常感谢Pavlo;我喜欢两种解决方案.. – Abbas1999 2014-08-30 21:27:11
因此,您要重新加载页面,然后滚动1000px? – Pavlo 2014-08-30 20:01:09
是的,我完全想要 – Abbas1999 2014-08-30 20:02:03
如何在dom存储中做到这一点? – Abbas1999 2014-08-30 20:03:20