bonjour,
j'ai trois feuilles de style dans mon site: le visiteur choisit son style grâce a un menu déroulant.
jusque la tout va bien
mais s'il choisit un thème qui n'ai pas celui par défaut et qu'il change de page et il se retrouve avec le thème par défaut.
Donc comment faire pour garder le même thème d'une page à l'autre.
Pas possible de t'aider sans plus de précision et de code.
Sans doute que la réponse est les sessions (tu mets le choix de css dans une var de session et tu l'appliques pour chaque page)
<li>[javascript:setActiveStyleSheet('arbre3') style 3]</li>
<li>[javascript:setActiveStyleSheet('arbre2') style 2]</li>
<li>[javascript:setActiveStyleSheet('arbre1') style par défaut]</li>
et le javascript qui me permet de changer la feuille :
<SCRIPT LANGUAGE="JavaScript">
//------------------------------------
//fonction creation cookie
//------------------------------------
function creerCookie(name,value,days) {
if (days) {
var date = new Date();
date.setTime(date.getTime()+(days*24*60*60*1000));
var expires = "; expires="+date.toGMTString();
}
else expires = "";
document.cookie = name + "=" + value + expires + "; path=/";
}
//------------------------------------
//fonction lecture cookie
//------------------------------------
function lireCookie(name) {
var nameEQ = name + "=";
var ca = document.cookie.split(';');
for(var i=0;i < ca.length;i++) {
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1,c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
}
return null;
}
function setActiveStyleSheet(title) {
var i, a, main;
currentStyle = title;
for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title")) {
a.disabled = true;
if(a.getAttribute("title") title) a.disabled false;
}
}
}
var defaultStyle = "arbre1";
var currentStyle ;
var cookies = lireCookie("style");
var bgStyle ((cookies "arbre1") || (cookies == "arbre2") || (cookies == "arbre3")) ? cookies : defaultStyle;
setActiveStyleSheet(bgStyle);