Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    272

    [js]Style switcher e cambio font con cookies insieme

    Salve a tutti!
    Su HTML.it ho trovato due script molto utili per cambiare lo stile della pagina con fogli di stile alternati e js http://pro.html.it/esempio/441/style...jscodice.html; e per cambiare le dimensioni del carattere http://pro.html.it/esempio/469/fontsizecodicejs.html.
    Entrambi fanno uso di cookies ma se usati nella stessa pagina il cookie di uno non ha effetto.
    Pur non avendo competenze di js ritengo che il problema sia che le parti di codice dei 2 script riguardanti la manipolazione del cookie siano uguali e perciò finiscano in qualche modo per sovrapporsi.
    Che sia questa o meno la causa non so, ma come fare?

  2. #2

    files inesistenti

    ad ogni modo:
    non ricordo se sia o meno così, ma un cookie (a livello server side sicuramente) non viene letto nella medesima pagina in cui è stato creato, quindi dovresti refresharla o usare un altro tipo di tecnica..
    secondo poi, un cookie con lo stesso nome di uno già esistente lo sovrascrive, perciò: o ne salvi due o lo elabori in maniera che ti consenta di salvare due dati distiniti (magari con un separatore tipo "|")..

    Se vuoi puoi postare il codice che hai usato così lo vedo dato che , come dicevo, i link che hai fornito sono inesistenti al momento..
    ciao!
    MR. PINK
    "Like a Virgin" is all about a girl who digs a guy with a big dick.
    The whole song is a metaphor for big dicks.

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    272

    Ecco i file

    Grazie mille xl'interessamento è molto importante xme.Ecco postati i file:
    Per cambiare il font
    /* manipolazione del font-size in javascript con uso dei cookie */

    onload=function(){
    size=getCookie("fontsize"); //reperisce il cookie
    if(size!=null) SetFontSize(size); //setta le impostazioni
    }

    function SetFontSize(s){
    document.getElementsByTagName('body')[0].style.fontSize=s;
    setCookie("fontsize",s,30);
    }

    function setCookie(name,value,expdays){ //memorizza il cookie
    var now = new Date();
    var exp = new Date(now.getTime() + (1000*60*60*24*expdays));
    document.cookie = name + "=" + escape(value) + ";" + "expires=" + exp.toGMTString() + ";" + "path=/";
    }

    function getCookie(name){ //restituisce il cookie
    var cname = name + "=";
    var dc = document.cookie;
    if (dc.length > 0) {
    var start = dc.indexOf(cname);
    if (start != -1) {
    start += cname.length;
    var stop = dc.indexOf(";", start);
    if (stop == -1) stop = dc.length;
    return unescape(dc.substring(start,stop));
    }
    }
    return null;
    }
    Style switcher
    var style = "default"; // title del css di default
    var cookiename = "Layout"; // nome del cookie
    var days = 30; // durata in giorni del cookie

    function switchStyle(s) {
    if (!document.getElementsByTagName) return;
    var el = document.getElementsByTagName("link");
    for (var i = 0; i < el.length; i++ ) {
    if (el[i].getAttribute("rel").indexOf("style") != -1 && el[i].getAttribute("title")) {
    el[i].disabled = true;
    if (el[i].getAttribute("title") == s) el[i].disabled = false;
    }
    }
    }

    function loadStyle() {
    var c = getStyleCookie();
    if (c && c != style) {
    switchStyle(c);
    style = c;
    }
    }

    function setStyle(s) {
    if (s != style) {
    switchStyle(s);
    style = s;
    setStyleCookie(); // questa istruzione mancava nel sorgente originale
    }
    }

    window.onload = loadStyle; // carica lo style swichter all' onload


    // Funzioni di manipolazione dei cookie

    function setCookie(name, value, expdays) {
    var now = new Date();
    var exp = new Date(now.getTime() + (1000*60*60*24*expdays));
    document.cookie = name + "=" + escape(value) + ";" +
    "expires=" + exp.toGMTString() + ";" +
    "path=/";
    }

    function delCookie(name) { // fa scadere il cookie
    var now = new Date();
    var exp = new Date(now.getTime() - 1);
    document.cookie = name + "=;" +
    "expires=" + exp.toGMTString() + ";" +
    "path=/";
    }

    function getCookie(name) { // restituisce il valore del cookie
    var cname = name + "=";
    var dc = document.cookie;
    if (dc.length > 0) {
    var start = dc.indexOf(cname);
    if (start != -1) {
    start += cname.length;
    var stop = dc.indexOf(";", start);
    if (stop == -1) stop = dc.length;
    return unescape(dc.substring(start,stop));
    }
    }
    return null;
    }

    function setStyleCookie() {
    setCookie(cookiename, style, days);
    }

    function getStyleCookie() {
    return getCookie(cookiename);
    }

    function delStyleCookie() {
    delCookie(cookiename);
    }
    Ciao fammi sapere!

  4. #4

    alistapart

    Al momento non ho motlissimo tempo per guardare tutto il codice, magari ce la faccio in serata..
    nel frattempo ti passo questo link al sito alistapart.com che è una specie di bibbia per i web designer / developer soprattutto per quanto riguarda CSS e accessibilità, nel link è spiegato uno degli style switcheer più noti nel web.. magari funziona meglio di quello che hai trovato tu
    MR. PINK
    "Like a Virgin" is all about a girl who digs a guy with a big dick.
    The whole song is a metaphor for big dicks.

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    272

    Domanda

    Per funzionare anche quello funziona il problema e avere i due script insieme nella stessa pagina.
    Si dovrebbe questa parte di codice o no?
    function setCookie(name,value,expdays){ //memorizza il cookie
    var now = new Date();
    var exp = new Date(now.getTime() + (1000*60*60*24*expdays));
    document.cookie = name + "=" + escape(value) + ";" + "expires=" + exp.toGMTString() + ";" + "path=/";
    }

    function getCookie(name){ //restituisce il cookie
    var cname = name + "=";
    var dc = document.cookie;
    if (dc.length > 0) {
    var start = dc.indexOf(cname);
    if (start != -1) {
    start += cname.length;
    var stop = dc.indexOf(";", start);
    if (stop == -1) stop = dc.length;
    return unescape(dc.substring(start,stop));

    Voi che dite?

  6. #6
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    272
    Confido sempre in voi

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    272
    Se pensate che il problema sia difficile da risolvere su due piedi ho pronto un file zip con una pagina di prova da spedire a chiunque me lo richiederà bye bye

  8. #8
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    272
    Ora metto l'indirizzo PER SCARICARE IL FILE ZIP


  9. #9
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    272
    L'indirizzo è questo:
    http://uscram8061.altervista.org/cambiastile.zip
    se non funziona (non so perché l'indirizzo è giusto)copiatelo nella barra degli indirizzi

  10. #10
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    272
    Sono sempre qui tranquilli non mollo

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.