11521 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

J'ai une petite galerie en ligne dont le code HTML et CSS a été entièrement écrit par mes soins. Le thème par défaut étant clair, il me semblait bienvenu que les visiteurs puissent switcher en mode sombre ou clair selon besoin. A cette fin, on dispose de 2 feuilles de styles ainsi que 2 scripts, l’un servant à switcher de feuille de style, l’autre servant à réaliser un bouton propre à la fonction de switch.
Tout semble fonctionner en local depuis mon PC. Seulement voilà, une fois le site mis en ligne, le switch de styles (accessible via la roue crantée en page d’accueil) ne fonctionne plus… Sauriez-vous y remédier en exposant la raison de ce fonctionnement ?

URL du site en question : https://image-nature.net

upload/1554379235-71925-capture.jpg

Bien à vous
Salut

À l'ouverture du site, erreur dans la console (touche F12) : style-switcher.js:1 Uncaught SyntaxError: Unexpected identifier

Dans la page https://image-nature.net/style.html au clic sur le thème sombre

Uncaught ReferenceError: setActiveStyleSheet is not defined
at HTMLImageElement.<anonymous> (style-switcher-buttons.js:4)
Bonjour danielhagnoul,

Je constate bien ces 2 notifications d'erreur via la console. N'étant pas l'auteur des scripts JavaScript et n'ayant pas de bases solides de ce langage, ces notifications ne me parlent pas.
Si ton js, style-switcher.js, n'était pas compacté sur une ligne, il serait plus facile d'identifier l'endroit qui pose problème.
@Depassage,

Effectivement, l'encodage des retours à la ligne n'était pas bon. Ca devrait être mieux désormais.
Meilleure solution
Visiblement c'est ce qui posait problème car après avoir actualisé la page(~vidé le cache) ça fonctionne
Modérateur
Salut,

Ton code concaténé ne fonctionne pas.
Un fois bien indenté il marche bien.

J'ai pu observer que ça pète quand on ne met pas de point virgule entre l’accolade et la suite du code à deux endroit :
}window.onunload 

}var cookie

Si tu mets :
};window.onunload 

};var cookie

ca devrait le faire.