Bonjour,

Alors j'ai récupéré un script js sur un site, qui permet de changer de css en js.

Le problème survient qu'en t'il change de css il, devrait envoyer un cookie pour se souvenir de la css utiliser pour la prochaine visite ceux qui et assez logique ^_^ ...

Le script envoie parfaitement le cookie en question sur firefox et ie 6/7 Mais pas sous Opera .

Si vous avais une idée d'où sa vient je serre bien heureux de le savoir svp .

Le code js :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
 
function setActiveStyleSheet(title){
	var i, a, main;
	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;
		}
	}
}
 
function getActiveStyleSheet(){
	var i, a;
	for(i=0; (a = document.getElementsByTagName('link')[i]); i++){
		if(a.getAttribute('rel').indexOf('style') != -1 && a.getAttribute('title') && !a.disabled) 
			return a.getAttribute('title');
	}	
	return null;
}
 
function getPreferredStyleSheet(){
	var i, a;
	for(i=0; (a = document.getElementsByTagName('link')[i]); i++){
		if(a.getAttribute('rel').indexOf('style') != -1 && a.getAttribute('rel').indexOf('alt') == -1 && a.getAttribute('title')) 
			return a.getAttribute('title');
	}
	return null;
}
 
function createCookie(name,value,days){
	var expires;
	if(days){
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		expires = '; expires='+date.toGMTString();
	}
	else{
		expires = '';
	}
	document.cookie = name+'='+value+expires+'; path=/';
}
 
function readCookie(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;
}
 
window.onload = function(e){
	var cookie = readCookie('style');
	var title = cookie ? cookie : getPreferredStyleSheet();
	setActiveStyleSheet(title);
}
 
window.onunload = function(e) {
	var title = getActiveStyleSheet();
	createCookie('style', title, 365);
}
 
var cookie = readCookie('style');
var title = cookie ? cookie : getPreferredStyleSheet();
setActiveStyleSheet(title);

Je vous remercie par avance !

Cordialement Arthur.