Fix version drop down creation.

Retrieval of scriptUrl was not working on Firefox.
gh-pages
Jonatan Antoni 3 years ago
parent 9be1e2c65e
commit 9145738f60

@ -9,37 +9,41 @@ const versions = {
} }
//--- list of versions --- //--- list of versions ---
var scripts = document.getElementsByTagName("script"), var script = document.currentScript
scriptUrl = new URL(scripts[scripts.length-1].src); if (script && script.src) {
docUrl = new URL(document.URL); var scriptUrl = new URL(script.src);
baseUrl = new URL(scriptUrl) var docUrl = new URL(document.URL);
baseUrl.pathname = baseUrl.pathname.split('/').slice(0,-1).join("/") var baseUrl = new URL(scriptUrl)
baseUrl.pathname = baseUrl.pathname.split('/').slice(0,-1).join("/")
function urlForVersion(url, version) { function urlForVersion(url, version) {
url = new URL(url); url = new URL(url);
pathname = url.pathname.replace(baseUrl.pathname, ""); pathname = url.pathname.replace(baseUrl.pathname, "");
parts = pathname.split("/"); parts = pathname.split("/");
parts[1] = version; parts[1] = version;
url.pathname = baseUrl.pathname + parts.join("/"); url.pathname = baseUrl.pathname + parts.join("/");
return url return url
} }
function writeVersionDropdown() { function writeVersionDropdown() {
currentVersion = document.currentScript.parentNode.innerText; currentVersion = document.currentScript.parentNode.innerText;
document.currentScript.parentNode.classList.add("dropdown"); document.currentScript.parentNode.classList.add("dropdown");
document.currentScript.parentNode.innerText = ""; document.currentScript.parentNode.innerText = "";
document.write(' <span onclick="myFunction()" class="dropbtn">'+currentVersion+'</span>'); document.write(' <span onclick="myFunction()" class="dropbtn">'+currentVersion+'</span>');
document.write(' <div id="myDropdown" class="dropdown-content">'); document.write(' <div id="myDropdown" class="dropdown-content">');
for(var version in versions) { for(var version in versions) {
var label = versions[version]; var label = versions[version];
if (label != version) { if (label != version) {
label += "("+version+")" label += " ("+version+")"
} }
label = "Version " + label label = "Version " + label
document.write(' <a href="'+urlForVersion(docUrl, version)+'">'+label+'</a>'); document.write(' <a href="'+urlForVersion(docUrl, version)+'">'+label+'</a>');
} }
document.write(' </div>'); document.write(' </div>');
}; };
} else {
function writeVersionDropdown() {}
}
/* When the user clicks on the button, /* When the user clicks on the button,
toggle between hiding and showing the dropdown content */ toggle between hiding and showing the dropdown content */

Loading…
Cancel
Save