diff options
-rw-r--r-- | web/script/player/mod.ts | 3 | ||||
-rw-r--r-- | web/script/transition.ts | 6 |
2 files changed, 8 insertions, 1 deletions
diff --git a/web/script/player/mod.ts b/web/script/player/mod.ts index 8473280..ce3c113 100644 --- a/web/script/player/mod.ts +++ b/web/script/player/mod.ts @@ -9,12 +9,13 @@ import { Logger } from "../jshelper/src/log.ts"; import { EncodingProfile } from "./jhls.d.ts"; import { Player } from "./player.ts"; -document.addEventListener("DOMContentLoaded", () => { +globalThis.addEventListener("DOMContentLoaded", () => { if (document.body.classList.contains("player")) { if (!globalThis.MediaSource) return alert("Media Source Extension API required") const node_id = globalThis.location.pathname.split("/")[2]; const main = document.getElementById("main")!; document.getElementsByTagName("footer")[0].remove() + globalThis.dispatchEvent(new Event("navigationrequiresreload")) initialize_player(main, node_id) } }) diff --git a/web/script/transition.ts b/web/script/transition.ts index 5043c18..6616bc0 100644 --- a/web/script/transition.ts +++ b/web/script/transition.ts @@ -16,9 +16,15 @@ globalThis.addEventListener("popstate", (_e) => { transition_to(window.location.href, true) }) +let disable_transition = false +globalThis.addEventListener("navigationrequiresreload", () => { + disable_transition = true +}) + function patch_page() { document.querySelectorAll("a").forEach(el => { el.addEventListener("click", async ev => { + if (disable_transition) return ev.preventDefault() await transition_to(el.href) }) |