From fd0532f193422167d2ed28f2557d63bd31176fb1 Mon Sep 17 00:00:00 2001 From: Dmitry Lyzo Date: Fri, 25 Feb 2022 20:25:08 +0300 Subject: [PATCH] Fix page reload on return `popstate` event cannot be captured, but we need to process it before `page` node module. --- src/components/appRouter.js | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/src/components/appRouter.js b/src/components/appRouter.js index 4b2b0006c0..dd350542a6 100644 --- a/src/components/appRouter.js +++ b/src/components/appRouter.js @@ -34,15 +34,20 @@ class AppRouter { constructor() { // WebKit fires a popstate event on document load - // Skip it using timeout + // Skip it using boolean // For Tizen 2.x - // https://stackoverflow.com/a/12214354 - window.addEventListener('load', () => { - setTimeout(() => { - window.addEventListener('popstate', () => { - this.popstateOccurred = true; - }); - }, 0); + // See `page` node module + let loaded = document.readyState === 'complete'; + if (!loaded) { + window.addEventListener('load', () => { + setTimeout(() => { + loaded = true; + }, 0); + }); + } + window.addEventListener('popstate', () => { + if (!loaded) return; + this.popstateOccurred = true; }); document.addEventListener('viewshow', () => this.onViewShow());