Store scroll data by path in sessionStorage (#1924)
diff --git a/lib/resources/script.js b/lib/resources/script.js
index 8ee6393..db4e525 100644
--- a/lib/resources/script.js
+++ b/lib/resources/script.js
@@ -29,20 +29,20 @@
function saveLeftScroll() {
var leftSidebar = document.getElementById('dartdoc-sidebar-left');
- sessionStorage.setItem('dartdoc-sidebar-left-scrollt', leftSidebar.scrollTop);
- sessionStorage.setItem('dartdoc-sidebar-left-scrolll', leftSidebar.scrollLeft);
+ sessionStorage.setItem('dartdoc-sidebar-left-scrollt' + window.location.pathname, leftSidebar.scrollTop);
+ sessionStorage.setItem('dartdoc-sidebar-left-scrolll' + window.location.pathname, leftSidebar.scrollLeft);
}
function saveMainContentScroll() {
var mainContent = document.getElementById('dartdoc-main-content');
- sessionStorage.setItem('dartdoc-main-content-scrollt', mainContent.scrollTop);
- sessionStorage.setItem('dartdoc-main-content-scrolll', mainContent.scrollLeft);
+ sessionStorage.setItem('dartdoc-main-content-scrollt' + window.location.pathname, mainContent.scrollTop);
+ sessionStorage.setItem('dartdoc-main-content-scrolll' + window.location.pathname, mainContent.scrollLeft);
}
function saveRightScroll() {
var rightSidebar = document.getElementById('dartdoc-sidebar-right');
- sessionStorage.setItem('dartdoc-sidebar-right-scrollt', rightSidebar.scrollTop);
- sessionStorage.setItem('dartdoc-sidebar-right-scrolll', rightSidebar.scrollLeft);
+ sessionStorage.setItem('dartdoc-sidebar-right-scrollt' + window.location.pathname, rightSidebar.scrollTop);
+ sessionStorage.setItem('dartdoc-sidebar-right-scrolll' + window.location.pathname, rightSidebar.scrollLeft);
}
function restoreScrolls() {
@@ -51,14 +51,14 @@
var rightSidebar = document.getElementById('dartdoc-sidebar-right');
try {
- var leftSidebarX = sessionStorage.getItem('dartdoc-sidebar-left-scrolll');
- var leftSidebarY = sessionStorage.getItem('dartdoc-sidebar-left-scrollt');
+ var leftSidebarX = sessionStorage.getItem('dartdoc-sidebar-left-scrolll' + window.location.pathname);
+ var leftSidebarY = sessionStorage.getItem('dartdoc-sidebar-left-scrollt' + window.location.pathname);
- var mainContentX = sessionStorage.getItem('dartdoc-main-content-scrolll');
- var mainContentY = sessionStorage.getItem('dartdoc-main-content-scrollt');
+ var mainContentX = sessionStorage.getItem('dartdoc-main-content-scrolll' + window.location.pathname);
+ var mainContentY = sessionStorage.getItem('dartdoc-main-content-scrollt' + window.location.pathname);
- var rightSidebarX = sessionStorage.getItem('dartdoc-sidebar-right-scrolll');
- var rightSidebarY = sessionStorage.getItem('dartdoc-sidebar-right-scrollt');
+ var rightSidebarX = sessionStorage.getItem('dartdoc-sidebar-right-scrolll' + window.location.pathname);
+ var rightSidebarY = sessionStorage.getItem('dartdoc-sidebar-right-scrollt' + window.location.pathname);
leftSidebar.scrollTo(leftSidebarX, leftSidebarY);
mainContent.scrollTo(mainContentX, mainContentY);
@@ -78,8 +78,6 @@
var rightSidebar = document.getElementById('dartdoc-sidebar-right');
// For portablility, use two different ways of attaching saveLeftScroll to events.
- // Keep the scroll position from expiring from the cache for a page that's been displayed
- // a long time but not moved by re-saving its position every hour.
leftSidebar.onscroll = saveLeftScroll;
leftSidebar.addEventListener("scroll", saveLeftScroll, true);
mainContent.onscroll = saveMainContentScroll;