distorsion.interhacker.space/site/js/styleswitcher.js

51 lines
1.4 KiB
JavaScript
Raw Normal View History

/*
* On enregistre ici la liste des feuilles de style disponibles.
* Il doit toujours y avoir une feuille "Default".
*/
2025-01-24 23:27:17 +01:00
const styles = { "Default" : "/css/default.css",
"No-CSS" : "/css/no-css.css",
"Darkmagenta" : "/css/darkmagenta.css",
};
2025-01-24 23:27:15 +01:00
2025-01-24 23:27:17 +01:00
for (const linkElement of document.getElementsByTagName("link")) {
if (linkElement.getAttribute("rel") === "stylesheet") {
var linkStyleElement = linkElement;
break;
2025-01-24 23:27:15 +01:00
}
}
2025-01-24 23:27:17 +01:00
function setStyle (styleName) {
linkStyleElement.setAttribute("href", styles[styleName])
sessionStorage.setItem("currentStyle", styleName);
2025-01-24 23:27:15 +01:00
}
2025-01-24 23:27:17 +01:00
function initStyle () {
const currentStyle = sessionStorage.getItem("currentStyle");
if (currentStyle) {
setStyle(currentStyle);
2025-01-24 23:27:15 +01:00
}
2025-01-24 23:27:17 +01:00
else {
setStyle("Default");
2025-01-24 23:27:15 +01:00
}
}
2025-01-24 23:27:17 +01:00
function initStyleSelectElement () {
const styleSelectElement = document.getElementById("styleswitcher");
/* On génère ici la liste des options du <select> dynamiquement. Ca permet
* de n'avoir à éditer que le script JavaScript pour ajouter de nouveaux
* style, plutôt que toutes les pages HTML. */
for (const styleName in styles) {
styleOption = document.createElement("option");
styleOption.value = styleName;
styleOption.textContent = styleName;
styleSelectElement.add(styleOption);
}
2025-01-24 23:27:17 +01:00
styleSelectElement.value = sessionStorage.getItem("currentStyle");
2025-01-24 23:27:15 +01:00
2025-01-24 23:27:17 +01:00
styleSelectElement.addEventListener("change", (event) => {setStyle(event.target.value)});
2025-01-24 23:27:15 +01:00
}
2025-01-24 23:27:17 +01:00
initStyle();