Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Zmiana tła
outlive
post
Post #1





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 4.12.2007

Ostrzeżenie: (0%)
-----


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ę (IMG:http://forum.php.pl/style_emoticons/default/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>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
p10
post
Post #2





Grupa: Zarejestrowani
Postów: 8
Pomógł: 2
Dołączył: 23.04.2009

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
outlive
post
Post #3





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 4.12.2007

Ostrzeżenie: (0%)
-----


dzięki działa (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 15.09.2025 - 19:26