对于打开新页面的链接$("#english")
,我使用下面的代码使新页面转到与上一页(包含其中的链接)所在位置相同的页面滚动位置。< / p>
if(localStorage.getItem('scroll'))
{
window.scrollTo(0, parseInt(localStorage.getItem("scroll")));
}
$("#english").on("click",function()
{
localStorage.setItem("scroll", document.body.scrollTop);
});
window.localStorage.clear();
使用Safari作为浏览器,效果很好,但是使用FireFox时,新页面会从页面顶部开始,而不会转到相同的页面滚动位置。有人吗?如何使这个跨浏览器证明?
答案 0 :(得分:1)
原因是firefox为document.body.scrollTop
返回0
相反,Firefox希望您使用document.documentElement.scrollTop
,但是 - 它不适用于Safari。
有许多可能的属性在某些浏览器中有效,而在其他浏览器中则无效。
根据我的经验window.pageYOffset
效果最佳(IE> = 9)
答案 1 :(得分:0)
所以这是有效的代码(感谢Jayms):
<script>
/*makes a new page jump to same scroll position as the scroll position when the link is activated*/
if(localStorage.getItem('scroll'))
{
window.scrollTo(0, parseInt(localStorage.getItem("scroll")));
}
$("#englishflag").on("click",function()
{
localStorage.setItem("scroll", window.pageYOffset);
});
window.localStorage.clear();
/*END*/
</script>