MediaWiki:Common.js: Difference between revisions
From Descendants of Darkness Wiki
No edit summary |
No edit summary |
||
| Line 10: | Line 10: | ||
var scrollPosition = localStorage.getItem('sidebarScrollPosition'); | var scrollPosition = localStorage.getItem('sidebarScrollPosition'); | ||
if (scrollPosition !== null) { | if (scrollPosition !== null) { | ||
document.getElementById(sidebarId).scrollTop = parseInt(scrollPosition); | setTimeout(function () { | ||
document.getElementById(sidebarId).scrollTop = parseInt(scrollPosition); | |||
}, 0); | |||
} | } | ||
} | } | ||
window.addEventListener('beforeunload', saveSidebarScrollPosition); | window.addEventListener('beforeunload', saveSidebarScrollPosition); | ||
var sidebarLinks = document.querySelectorAll('#' + sidebarId + ' a'); | document.addEventListener('DOMContentLoaded', function () { | ||
restoreSidebarScrollPosition(); | |||
var sidebarLinks = document.querySelectorAll('#' + sidebarId + ' a'); | |||
sidebarLinks.forEach(function (link) { | |||
link.addEventListener('click', function (event) { | |||
saveSidebarScrollPosition(); | |||
}); | |||
}); | }); | ||
var sidebarHeadings = document.querySelectorAll('#' + sidebarId + ' .sidebar-heading'); | |||
sidebarHeadings.forEach(function (heading) { | |||
heading.addEventListener('click', function (event) { | |||
saveSidebarScrollPosition(); | |||
}); | |||
}); | }); | ||
}); | }); | ||
})(); | })(); | ||
Revision as of 00:02, 14 April 2024
(function () {
var sidebarId = 'mw-navigation';
function saveSidebarScrollPosition() {
var scrollPosition = document.getElementById(sidebarId).scrollTop;
localStorage.setItem('sidebarScrollPosition', scrollPosition);
}
function restoreSidebarScrollPosition() {
var scrollPosition = localStorage.getItem('sidebarScrollPosition');
if (scrollPosition !== null) {
setTimeout(function () {
document.getElementById(sidebarId).scrollTop = parseInt(scrollPosition);
}, 0);
}
}
window.addEventListener('beforeunload', saveSidebarScrollPosition);
document.addEventListener('DOMContentLoaded', function () {
restoreSidebarScrollPosition();
var sidebarLinks = document.querySelectorAll('#' + sidebarId + ' a');
sidebarLinks.forEach(function (link) {
link.addEventListener('click', function (event) {
saveSidebarScrollPosition();
});
});
var sidebarHeadings = document.querySelectorAll('#' + sidebarId + ' .sidebar-heading');
sidebarHeadings.forEach(function (heading) {
heading.addEventListener('click', function (event) {
saveSidebarScrollPosition();
});
});
});
})();