skin diversi con jquery e cookie

sifting

Nuovo Utente
4 Dic 2013
3
0
0
Salve a tutto il forum!! Mi scuso con l'amministratore se metterò abbastanza codice ma non saprei sennò come farlo vedere...
Avrei un piccolo progetto in mente da usare su un mio minisito privato che sto facendo ( non ancora in rete ). Premetto che purtroppo conosco solo HTML e CSS...
In pratica vorrei far si che si possa scegliere lo "skin" del sito ovvero cambiare le icone e sfondo di 3 o 4 pagine e che il computer ricordi il css scelto tramite cookies. Ho trovato in internet la soluzione tramite plugin jquery che farebbe proprio al caso mio tranne un piccolo particolare che spiegherò alla fine.
http://www.gleenk.com/cookie-e-jquery-cambiamo-foglio-stile/#

In pratica nella pagina index.html richiamo la libreria e i file
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.min.js">
<script type="text/javascript" src="js/cambiocss/scripts.js"></script>
<script type="text/javascript" src="js/cambiocss/cookie.js"></script>

Codice di scripts.js:

Codice:
function swapcss() {
  $("#nav li a").click(function() { 
    $("link").attr("href",$(this).attr('rel'));
    $.cookie("css",$(this).attr('rel'), {expires: 365, path: '/'});
    return false;
  });
  }

codice cookies.js:

Codice:
jQuery.cookie = function(name, value, options) {
    if (typeof value != 'undefined') { // name and value given, set cookie
        options = options || {};
        if (value === null) {
            value = '';
            options.expires = -1;
        }
        var expires = '';
        if (options.expires && (typeof options.expires == 'number' || options.expires.toUTCString)) {
            var date;
            if (typeof options.expires == 'number') {
                date = new Date();
                date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000));
            } else {
                date = options.expires;
            }
            expires = '; expires=' + date.toUTCString(); // use expires attribute, max-age is not supported by IE
        }
        // CAUTION: Needed to parenthesize options.path and options.domain
        // in the following expressions, otherwise they evaluate to undefined
        // in the packed version for some reason...
        var path = options.path ? '; path=' + (options.path) : '';
        var domain = options.domain ? '; domain=' + (options.domain) : '';
        var secure = options.secure ? '; secure' : '';
        document.cookie = [name, '=', encodeURIComponent(value), expires, path, domain, secure].join('');
    } else { // only name given, get cookie
        var cookieValue = null;
        if (document.cookie && document.cookie != '') {
            var cookies = document.cookie.split(';');
            for (var i = 0; i < cookies.length; i++) {
                var cookie = jQuery.trim(cookies);
                // Does this cookie string begin with the name we want?
                if (cookie.substring(0, name.length + 1) == (name + '=')) {
                    cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
                    break;
                }
            }
        }
        return cookieValue;
    }
};


alla fine prima della chiusura del tag body ho messo questo:

Codice:
<script type="text/javascript">

if($.cookie("css")) {
  $("link").attr("href",$.cookie("css"));
}
$(document).ready(function(){
  swapcss();
  });
</script>

E sempre nel body un menù:

<div id="changestyle">
<ul id="nav">
<li><a href="#" rel="style/stile1.css">STILE1</a></li>
<li><a href="#" rel="style/stile2.css">STILE2</a></li>
</ul>

Ora funziona tutto alla grande ma mi cambia solo il css di questa pagina. Come potrei fare per far si di mettere il menù ul, li... in una pagina chiamata setting.html e che mi cambiasse il css della pagina index.html e magari delle altre due?

Grazie mille...!!
 

emanuelevt

Utente Attivo
24 Giu 2009
298
0
0
ciao io opterei per una soluzione implementando linguaggio lato server:
PHP:
<a href='<?php echo $_SERVER['PHP_SELF']?link_prova=1'>link prova</a> // rimando il click sulla stessa pagina richiamando la var link_prova

if(isset($_GET['link_prova')){

setcookie('nuovo_css.css', ”, time() – 3600); /** questo cookie vale per un'ora

}

//se il cookie esiste allora mi preleva il css tramite cookie

$var=$_COOKIE['nuovo_css.css'];//prelevo cookie

if(isset($var)){
?>
 <link href="<?php echo $var;?>" rel="stylesheet" type="text/css">
<?php

}else{
/**prelevo il css normale
}

p.s. il codice l'ho fatto di fretta però insomma basta visualizzare l'esistenza del cookie e inserire la clausula if/else;
 
Ultima modifica:
Discussioni simili
Autore Titolo Forum Risposte Data
V Skin Advertising a rotazione HTML e CSS 0
novello88 Skin ADV (sfondo pubblicitario): possibile causa di penalizzazione? SEO e Posizionamento 1
A Problema con Template dorada restaurant minimal skin Joomla 1
B Flash video: skin difettoso Flash 0
R problema con Skin player Flash 1
peppoweb Win Media Player, occhio alle false skin Sicurezza e Virus 1
M Collegare due segmenti di rete diversi Reti LAN e Wireless 0
R [VENDO][DOMINI] .com per mercati diversi Compravendita siti e domini 0
D Salvare in diversi campi mysql con diversi ID PHP 0
M [Vendo] Banner diversi formati su Tecnologia, internet e servizi online Vendere e Acquistare pubblicita' online 0
A Hosting e dns con gestori diversi Hosting 0
S [PHP] Estrarre dati tabella in diversi array PHP 2
N [WordPress] Caricare diversi fogli di stile in tema-child WordPress 0
D Vendo diversi giochi per Xbox One e PS4 Nuovi e sigillati Altri Annunci 0
felino Windows 8.1: installare sistema operativo e programmi in due hard disk diversi Windows e Software 4
Sermatth72 [HTML] creare link con colori Hover diversi, possibile? HTML e CSS 6
A [Javascript] [RISOLTO] Doppio "submit", in uno stesso "Form" , che puntino ad "action" diversi Javascript 1
D Associazione nomi dominio diversi a stesso ip Domini 4
A Vendo diversi account Facebook Annunci servizi di Social Media Marketing 1
A [WordPress] Problema CSS con diversi browser WordPress 4
L [php e xml] per creare una galleria fotografica con diversi file xml PHP 0
V Parallelismo 2 vpn con diversi operatori Reti LAN e Wireless 1
Monital [PHP] Creare un array da stringa con diversi spazi PHP 3
D Gestire diversi tipi di pagamento per tipologia di cliente E-Commerce 4
G [Vendo] Diversi Blog piu' temi Compravendita siti e domini 1
C array_rand prende elementi casuali diversi? PHP 6
P Invio mail diversi destinatari PHP 10
C Condividere gli hard disk tra due sistemi operativi diversi (windows 7 e 8) Reti LAN e Wireless 6
L sostituzione contenuto diversi div con document.getelementbyid Javascript 2
D [Vendo]Articoli originali diversi argomenti Offerte e Richieste di Lavoro e/o Collaborazione 2
G Cataloghi prodotti diversi in base alla categoria utente E-Commerce 1
S integrare diversi tipi di pagamento in un sito web, e convalidare l' iscrizione PHP 8
gandalf1959 [risolto] Mostrare a video il risultato di una query con stesso anno e mesi diversi PHP 13
felino [risolto] Creare un modulo per preventivi basato su diversi step PHP 3
G Collegamento tra pagine jsp tramite 2 bottoni diversi Java 1
A Numero di parametri addEventListener per i diversi browser Javascript 0
Emix Problema visualizzazione pagina su host diversi HTML e CSS 3
giancadeejay link diversi per ogni utente PHP 25
S Css: Link ipertestuali con diversi valori HTML e CSS 3
N conflitto tra diversi javascript mootools e qscroller Javascript 4
P Unire, confrontare due tabelle da due db diversi fati in phpmyadmin Database 5
S Il sito cambia dimensioni e posizionamento componenti in diversi computer HTML e CSS 1
E Prelevare dati diversi da 3 tabelle con gli stessi campi e accodarli per data PHP 1
G Funzione per spedire email a destinatari diversi PHP 0
N diversi script nella stessa pagina web Javascript 4
U [Vendo]Banner di diverse dimensioni su diversi siti Vendere e Acquistare pubblicita' online 0
asevenx form con input select con valori diversi tra loro PHP 13
C Load CSV / MultyQuery su database diversi PHP 2
B Diversi tipi di query PHP 2
E richiamare id diversi da una database PHP 3

Discussioni simili