Visualizzazione dei risultati da 1 a 3 su 3

Discussione: cambiare colore sfondo

  1. #1

    cambiare colore sfondo

    salve
    vorrei far si che ogni utente possa scegliersi la propria personale combinazione di colori del sito e che questa rimanga ovviamente memorizzata tramite cookie.

    per ora non ho problemi a memorizzare il cookie o a cambiare il colore della pagina "al volo" tramite pulsante.

    il problema nasce quando al refresh o cambiamento pagina dovrei rileggere il cookie e settare al caricamento lo sfondo.
    firefox non ne vuole sapere assolutamente, mentre explorer utilizzando bgColor riesce.

    quindi la domanda è se sia possibile o meno avere un metodo inanzitutto che funzioni e poi magari senza fare differenze tra browser! grazie!

    allego codice js
    codice:
    var defaultColor = "#3399ff";
    window.onload = init();
    
    function init(){
    	var cookie = readCookie("bgcolor"); 	
    	var colore = cookie ? cookie : defaultColor;
    
    	//"rgb(51, 153, 255) none repeat scroll 0% 0%"
    	document.body.style.background = readCookie("bgcolor");
    	document.forms["bgColorSelect"].color.value = readCookie("bgcolor");
    	alert('works!'+readCookie("bgcolor"));/**/
    }
    
    function changeBgColor(){
    	var bkgcolor = document.forms["bgColorSelect"].color.value;
    	document.body.style.background = bkgcolor;
    	createCookie("bgcolor",bkgcolor,30);
    }
    
    //thanks to quirksmode.org
    function createCookie(name,value,days) {
    	if (days) {
    		var date = new Date();
    		date.setTime(date.getTime()+(days*24*60*60*1000));
    		var expires = "; expires="+date.toGMTString();
    	}
    	else var 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;
    }
    
    function eraseCookie(name) {
    	createCookie(name,"",-1);
    }


    html
    codice:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="it" lang="it">
    <head>
    	<title>questa una pagina di prova</title>
    	<script ltype="text/javascript" src="scripts.js"></script>
    </head>
    <body>
    	<div>
    		<h1>questa una pagina di prova</h1>
    		<form name="bgColorSelect" action="javascript:changeBgColor()">
    			<input name="color" type="text" size="7" value="#FFFFFF"/>		
    			<input type="button" value="Colora!" onclick="changeBgColor()" />
    		</form>
    	</div>
    </body>
    </html>
    e il link a una pagina di prova
    http://www.jalone.net/test/tests.html

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    grazie mille, ora funziona, pero ho aggirato il problema
    sarei stato proprio curioso di sapere perche nel window.onload mi dava l'errore che il body non esiste/èstato inizializzato/è null

    se qualcuno sa comunque rispondermi...

    grazie ancora!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.