Retourner au contenu associé (entrée de forum : RÉSOLU [javascript] - utilisation locale)
Posté par Jean-Philippe Garcia Ballester le 27 février 2026 à 09:32. En réponse au message RÉSOLU [javascript] - utilisation locale. Évalué à 3.
Patch v2 ci-dessous
diff --git a/assets/scripts/functions.js b/assets/scripts/functions.js index c84f5ad..b292872 100644 --- a/assets/scripts/functions.js +++ b/assets/scripts/functions.js @@ -2,15 +2,39 @@ // ! URLs +var baseUrl = "/home/jip/T%C3%A9l%C3%A9chargements/ManyTinyThings.github.io"; + function parentUrl(url) { var urlParts = removeTrailingSlash(url).split("/"); - var result = urlParts.slice(0, urlParts.length - 1).join("/"); - if (result.length === 0) + var result = urlParts.slice(0, urlParts.length - 1).join("/") + "/"; + return result; +} + +function removeBaseUrl(url) +{ + if(url.endsWith(".html")) { - return "/"; + url = url.slice(0, url.length - 5); } - return result; + if(url.endsWith("/index")) + { + url = url.slice(0, url.length - 5); + } + return url.slice(baseUrl.length); +} + +function addBaseUrl(url) +{ + if(url.endsWith("/")) + { + url = url + "index" + } + if(!url.endsWith(".html")) + { + url = url + ".html" + } + return baseUrl + url; } function removeTrailingSlash(url) @@ -22,6 +46,15 @@ function removeTrailingSlash(url) return url; } +function addTrailingSlash(url) +{ + if(!url.endsWith("/")) + { + return url + "/"; + } + return url; +} + // ! Site navigation var NavigationInfo = new function () @@ -374,10 +407,10 @@ var NavigationInfo = new function () } this.sequences[baseUrl] = sequence; } - sequence.panelUrls.push(removeTrailingSlash(page.url)); + sequence.panelUrls.push(page.url); } - var currentUrl = removeTrailingSlash(window.location.pathname); + var currentUrl = removeBaseUrl(window.location.pathname); var currentBaseUrl = parentUrl(currentUrl); var currentSequence = this.sequences[currentBaseUrl]; var panelIndex = currentSequence.panelUrls.indexOf(currentUrl); @@ -420,7 +453,7 @@ function createSequenceDots(sequence) } if (a.innerHTML !== "○しろまる") { - a.href = sequence.panelUrls[panelIndex]; + a.href = addBaseUrl(sequence.panelUrls[panelIndex]); a.classList.add("visited"); } } @@ -435,7 +468,7 @@ function resetProgress() function makeParentElementSequenceLink(sequenceUrl) { - var sequence = NavigationInfo.sequences[sequenceUrl]; + var sequence = NavigationInfo.sequences[addTrailingSlash(sequenceUrl)]; var parentElement = document.currentScript.parentNode; parentElement.classList.add("sequenceLink"); @@ -445,7 +478,7 @@ function makeParentElementSequenceLink(sequenceUrl) a.appendChild(parentElement.firstChild); } parentElement.appendChild(a); - a.href = sequence.panelUrls[0]; + a.href = addBaseUrl(sequence.panelUrls[0]); var sequenceDots = createSequenceDots(sequence); parentElement.appendChild(sequenceDots); @@ -510,7 +543,7 @@ document.addEventListener("DOMContentLoaded", function() { { prevUrl = current.sequence.panelUrls[current.panelIndex - 1]; } - document.getElementById("leftNavigationArea").innerHTML = `<a href=${prevUrl}>«</a>`; + document.getElementById("leftNavigationArea").innerHTML = `<a href=${addBaseUrl(prevUrl)}>«</a>`; var nextUrl; if (isLastPanel) @@ -522,8 +555,8 @@ document.addEventListener("DOMContentLoaded", function() { nextUrl = current.sequence.panelUrls[current.panelIndex + 1]; } - document.getElementById("rightNavigationArea").innerHTML = `<a href=${nextUrl}>»</a>`; - document.getElementById("pageFooter").innerHTML = `<a href=${nextUrl}>Next <span class="chevron">»</span></a>`; + document.getElementById("rightNavigationArea").innerHTML = `<a href=${addBaseUrl(nextUrl)}>»</a>`; + document.getElementById("pageFooter").innerHTML = `<a href=${addBaseUrl(nextUrl)}>Next <span class="chevron">»</span></a>`; // nav bar @@ -538,7 +571,7 @@ document.addEventListener("DOMContentLoaded", function() { var sequence = NavigationInfo.sequences[url]; if (sequence) { - title = `<a href="${parentUrl(current.sequence.baseUrl)}">${sequence.title}</a> ⟩ ${title}`; + title = `<a href="${addBaseUrl(parentUrl(current.sequence.baseUrl))}">${sequence.title}</a> ⟩ ${title}`; } url = parentUrl(url); }
AltStyle によって変換されたページ (->オリジナル) / アドレス: モード: デフォルト 音声ブラウザ ルビ付き 配色反転 文字拡大 モバイル
[^] # Re: Everything in its right place
Posté par Jean-Philippe Garcia Ballester . En réponse au message RÉSOLU [javascript] - utilisation locale. Évalué à 3.
Patch v2 ci-dessous