From 9145738f60325438b036999aa236b6687c11d39d Mon Sep 17 00:00:00 2001 From: Jonatan Antoni Date: Mon, 31 Oct 2022 14:24:19 +0100 Subject: [PATCH] Fix version drop down creation. Retrieval of scriptUrl was not working on Firefox. --- version.js | 62 +++++++++++++++++++++++++++++------------------------- 1 file changed, 33 insertions(+), 29 deletions(-) diff --git a/version.js b/version.js index acaca934..d1197e1f 100644 --- a/version.js +++ b/version.js @@ -9,37 +9,41 @@ const versions = { } //--- list of versions --- -var scripts = document.getElementsByTagName("script"), -scriptUrl = new URL(scripts[scripts.length-1].src); -docUrl = new URL(document.URL); -baseUrl = new URL(scriptUrl) -baseUrl.pathname = baseUrl.pathname.split('/').slice(0,-1).join("/") +var script = document.currentScript +if (script && script.src) { + var scriptUrl = new URL(script.src); + var docUrl = new URL(document.URL); + var baseUrl = new URL(scriptUrl) + baseUrl.pathname = baseUrl.pathname.split('/').slice(0,-1).join("/") -function urlForVersion(url, version) { - url = new URL(url); - pathname = url.pathname.replace(baseUrl.pathname, ""); - parts = pathname.split("/"); - parts[1] = version; - url.pathname = baseUrl.pathname + parts.join("/"); - return url -} + function urlForVersion(url, version) { + url = new URL(url); + pathname = url.pathname.replace(baseUrl.pathname, ""); + parts = pathname.split("/"); + parts[1] = version; + url.pathname = baseUrl.pathname + parts.join("/"); + return url + } -function writeVersionDropdown() { - currentVersion = document.currentScript.parentNode.innerText; - document.currentScript.parentNode.classList.add("dropdown"); - document.currentScript.parentNode.innerText = ""; - document.write(' '+currentVersion+''); - document.write(' '); -}; + function writeVersionDropdown() { + currentVersion = document.currentScript.parentNode.innerText; + document.currentScript.parentNode.classList.add("dropdown"); + document.currentScript.parentNode.innerText = ""; + document.write(' '+currentVersion+''); + document.write(' '); + }; +} else { + function writeVersionDropdown() {} +} /* When the user clicks on the button, toggle between hiding and showing the dropdown content */