Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zmiana tła
Forum PHP.pl > Forum > Po stronie przeglądarki
outlive
Witam
Tworzę stronkę i jako pierdółkę chciałem zrobić opcję wyboru tła. Przez 3 h szukałem jakiegoś skryptu który wykona to zadanie, jednak żaden nie miał opcji zapamiętywania tła po przejściu na inną podstronę sad.gif. Wie ktoś może jak przerobić poniższy kod aby zapamiętał ustawienia. Czytałem i próbowałem trochę działać na ciasteczkach ale coś mi nie wychodzi :/. Może znacie jakieś gotowe rozwiązanie.
Z góry dzięki

Kod
<script type="text/javascript">
var backColor = new Array();

backColor[0] = '#00f0ff';
backColor[1] = '#00ff1f';
backColor[2] = '#e4ff00';
backColor[3] = '#FFFFFF';


function changeBG(whichColor){
         document.body.style.backgroundColor = backColor[whichColor];
         createCookie("bgcolor", backColor[whichColor], 14);
}

     </script>
</head>

<body>


<a href="#" onclick="javascript:changeBG(0);"><img src="blue.jpg" alt="blue" /></a>
<a href="#" onclick="javascript:changeBG(1);"><img src="green.jpg" alt="green" /></a>
<a href="#" onclick="javascript:changeBG(2);"><img src="yellow.jpg" alt="yellow" /></a>
</body>
</html>
p10
Dzisiaj jestem dobry wujek, to dam ci gotowe rozwiązanie.

przede wszystkim potrzebujesz funkcji do ustawiania i zczytywania ciastek. kiedys uzywalem tego kodu:

CODE
var Cookie = {
set: function(name, val, sec) {
if (val) {
document.cookie = name + "=" + escape (val) +
((sec) ? "; expires=" + this._time(sec): "");
} else if (this.get(name)) {
document.cookie = name + "=" + "; expires=Thu, 01-Jan-70 00:00:01 GMT";
}
},

get: function(name) {
var arg = name + "=";
var aLen = arg.length;
var cLen = document.cookie.length;
var i = 0;
while (i < cLen) {
var j = i + aLen;
if (document.cookie.substring(i, j) == arg) {
return this._getValue(j);
}
i = document.cookie.indexOf(" ", i) + 1;
if (i == 0) break;
}
return null;
},

_time: function(i) {
if(!i) var i = 0;
else i = i*1000;
var expDate = (new Date).getTime();
expDate = expDate + i;
var newDate = new Date(expDate);
return newDate.toGMTString();
},

_getValue: function(offset) {
var end = document.cookie.indexOf (";", offset);
if (end == -1) {
end = document.cookie.length;
}
return unescape(document.cookie.substring(offset, end));
}
};


potem tablica i funkcja
CODE

var backColor = ['#00f0ff', '#00ff1f', '#e4ff00', '#FFFFFF'];

function setBackground(v) {
if (v != null) Cookie.set('bgcolor', v);
var readCookie = Cookie.get('bgcolor');
if (readCookie) document.body.style.backgroundColor = backColor[parseInt(readCookie)];
}


na koniec wywolanie funkcji po zaladowaniu strony, ktora zczytuje ciacho i ustawia wartosc

CODE
window.onload = function() {
setBackground();
};


p.s. to nie jest idealne rozwiazanie. pojawi się problem przy 'cięższych' stronach, gdzie skrypt będzie czekał na załadowanie się całego drzewa, a dopiero na końcu ustawi kolorek.
outlive
dzięki działa biggrin.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.