Skip to content

Commit 2ac92c6

Browse files
authored
Store scroll data by path in sessionStorage (#1924)
1 parent 733992b commit 2ac92c6

File tree

1 file changed

+12
-14
lines changed

1 file changed

+12
-14
lines changed

Diff for: lib/resources/script.js

+12-14
Original file line numberDiff line numberDiff line change
@@ -29,20 +29,20 @@ function initSideNav() {
2929

3030
function saveLeftScroll() {
3131
var leftSidebar = document.getElementById('dartdoc-sidebar-left');
32-
sessionStorage.setItem('dartdoc-sidebar-left-scrollt', leftSidebar.scrollTop);
33-
sessionStorage.setItem('dartdoc-sidebar-left-scrolll', leftSidebar.scrollLeft);
32+
sessionStorage.setItem('dartdoc-sidebar-left-scrollt' + window.location.pathname, leftSidebar.scrollTop);
33+
sessionStorage.setItem('dartdoc-sidebar-left-scrolll' + window.location.pathname, leftSidebar.scrollLeft);
3434
}
3535

3636
function saveMainContentScroll() {
3737
var mainContent = document.getElementById('dartdoc-main-content');
38-
sessionStorage.setItem('dartdoc-main-content-scrollt', mainContent.scrollTop);
39-
sessionStorage.setItem('dartdoc-main-content-scrolll', mainContent.scrollLeft);
38+
sessionStorage.setItem('dartdoc-main-content-scrollt' + window.location.pathname, mainContent.scrollTop);
39+
sessionStorage.setItem('dartdoc-main-content-scrolll' + window.location.pathname, mainContent.scrollLeft);
4040
}
4141

4242
function saveRightScroll() {
4343
var rightSidebar = document.getElementById('dartdoc-sidebar-right');
44-
sessionStorage.setItem('dartdoc-sidebar-right-scrollt', rightSidebar.scrollTop);
45-
sessionStorage.setItem('dartdoc-sidebar-right-scrolll', rightSidebar.scrollLeft);
44+
sessionStorage.setItem('dartdoc-sidebar-right-scrollt' + window.location.pathname, rightSidebar.scrollTop);
45+
sessionStorage.setItem('dartdoc-sidebar-right-scrolll' + window.location.pathname, rightSidebar.scrollLeft);
4646
}
4747

4848
function restoreScrolls() {
@@ -51,14 +51,14 @@ function restoreScrolls() {
5151
var rightSidebar = document.getElementById('dartdoc-sidebar-right');
5252

5353
try {
54-
var leftSidebarX = sessionStorage.getItem('dartdoc-sidebar-left-scrolll');
55-
var leftSidebarY = sessionStorage.getItem('dartdoc-sidebar-left-scrollt');
54+
var leftSidebarX = sessionStorage.getItem('dartdoc-sidebar-left-scrolll' + window.location.pathname);
55+
var leftSidebarY = sessionStorage.getItem('dartdoc-sidebar-left-scrollt' + window.location.pathname);
5656

57-
var mainContentX = sessionStorage.getItem('dartdoc-main-content-scrolll');
58-
var mainContentY = sessionStorage.getItem('dartdoc-main-content-scrollt');
57+
var mainContentX = sessionStorage.getItem('dartdoc-main-content-scrolll' + window.location.pathname);
58+
var mainContentY = sessionStorage.getItem('dartdoc-main-content-scrollt' + window.location.pathname);
5959

60-
var rightSidebarX = sessionStorage.getItem('dartdoc-sidebar-right-scrolll');
61-
var rightSidebarY = sessionStorage.getItem('dartdoc-sidebar-right-scrollt');
60+
var rightSidebarX = sessionStorage.getItem('dartdoc-sidebar-right-scrolll' + window.location.pathname);
61+
var rightSidebarY = sessionStorage.getItem('dartdoc-sidebar-right-scrollt' + window.location.pathname);
6262

6363
leftSidebar.scrollTo(leftSidebarX, leftSidebarY);
6464
mainContent.scrollTo(mainContentX, mainContentY);
@@ -78,8 +78,6 @@ function initScrollSave() {
7878
var rightSidebar = document.getElementById('dartdoc-sidebar-right');
7979

8080
// For portablility, use two different ways of attaching saveLeftScroll to events.
81-
// Keep the scroll position from expiring from the cache for a page that's been displayed
82-
// a long time but not moved by re-saving its position every hour.
8381
leftSidebar.onscroll = saveLeftScroll;
8482
leftSidebar.addEventListener("scroll", saveLeftScroll, true);
8583
mainContent.onscroll = saveMainContentScroll;

0 commit comments

Comments
 (0)