diff --git a/src/script.js b/src/script.js index 340c229..fd2901a 100755 --- a/src/script.js +++ b/src/script.js @@ -37,10 +37,10 @@ if (typeof window.orientation !== 'undefined') { } // Manual upload -manualUpload.addEventListener('change', () => Array.from(manualUpload.files).forEach(f => postFile(f, '/' + f.name)), false) +manualUpload.addEventListener('change', () => Array.from(manualUpload.files).forEach(f => isDupe(f.name) || postFile(f, '/' + f.name)), false) // Soft nav -function browseTo (href, flickerDone) { +function browseTo (href, flickerDone, skipHistory) { fetch(href, { credentials: 'include' }).then(r => r.text().then(t => { const parsed = new DOMParser().parseFromString(t, 'text/html') const table = parsed.querySelectorAll('table')[0].innerHTML @@ -51,7 +51,10 @@ function browseTo (href, flickerDone) { if (document.head.querySelectorAll('title')[0].innerText !== title) { document.head.querySelectorAll('title')[0].innerText = title document.body.querySelectorAll('h1')[0].innerText = '.' + title - history.replaceState({}, '', encodeURI(title)) + + if (!skipHistory) { + history.pushState({}, '', encodeURI(title)) + } } if (flickerDone) { @@ -74,8 +77,10 @@ window.onClickLink = e => { } const refresh = () => browseTo(location.href, true) -const prevPage = (url) => picsOff() || browseTo(url || (location.href + '../')) -window.onpopstate = () => prevPage(location.href) + +const prevPage = (url, skipHistory) => picsOff() || browseTo(url, false, skipHistory) + +window.onpopstate = () => prevPage(location.href, true) // RPC function rpcFs (call, args, cb) { @@ -424,7 +429,7 @@ document.body.addEventListener('keydown', e => { return prevent(e) || picsOn(true) || picsNav(true) || getASelected().click() case 'ArrowLeft': - return prevent(e) || picsNav(false) || prevPage() + return prevent(e) || picsNav(false) || prevPage(location.href + '../') case 'Escape': return prevent(e) || resetBackgroundLinks() || picsOff() diff --git a/src/style.css b/src/style.css index fa8213a..370ade4 100644 --- a/src/style.css +++ b/src/style.css @@ -49,7 +49,6 @@ div, i { .arrow-selected { background-image: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0ndXRmLTgnPz4KPHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDEyOSAxMjkiIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCAxMjkgMTI5Ij4KICA8Zz4KICAgIDxwYXRoIGQ9Im00MC40LDEyMS4zYy0wLjgsMC44LTEuOCwxLjItMi45LDEuMnMtMi4xLTAuNC0yLjktMS4yYy0xLjYtMS42LTEuNi00LjIgMC01LjhsNTEtNTEtNTEtNTFjLTEuNi0xLjYtMS42LTQuMiAwLTUuOCAxLjYtMS42IDQuMi0xLjYgNS44LDBsNTMuOSw1My45YzEuNiwxLjYgMS42LDQuMiAwLDUuOGwtNTMuOSw1My45eiIvPgogIDwvZz4KPC9zdmc+Cg=="); height: inherit; - width: inherit; } .arrow {