Visualizzazione risultati 1 fino 9 di 9

Discussione: [javascript] Ricominciare il loop di uno script

  1. #1
    Guest

    Predefinito [javascript] Ricominciare il loop di uno script

    Ciao a tutti, ho riscontrato questo (non vitale) problema che vorrei risolvere col vostro aiuto.

    Il seguente script mostra dei messaggi sulle barra superiore e inferiore dei browser e nelle tabs. Il messaggio si compone in stile macchina da scrivere e giunto alla fine passa al secondo e così via. Dopo l'ultimo dovrebbe ricominciare da capo, ma questo non avviene. Viene visualizzato invece il messaggio di errore nello script. Facendo un po' di ricerche ho trovato che il problema dovrebbe far riferimento a typing.length, non so in quale posizione però.

    Ecco il sorgente:

    Codice:
    <script language="JavaScript" type="text/javascript">
    var message = new Array();
    
    message[0] = "Benvenuto caro visitatore!";
    	message[1] = "www.thinorhobu.altervista.org";
    	message[2] = "ThinoRhobu ti augura una buona lettura";
    	message[3] = "E... prima di andare via...";
    	message[4] = "Non dimenticarti di firmare il GuestBook! ^__^";
    
    var reps = 1;
    var speed = 150;
    var hold = 8;
    
    var p = message.length;
    var q = 0;
    var r = 0;
    var C = 0;
    var mC = 0;
    var s = 0;
    var sT = null;
    
    if (reps < 1) {
    reps = 1;
    }
    function setMessage() {
    typing = message[mC];
    q = typing.length;
    r = q + hold;
    typeMessage();
    }
    function typeMessage() {
    if (s > r) {
    s = 0;
    }
    if (s > q) {
    document.title = '|- '+ typing +' - - -';
    }
    else {
    document.title = '|- '+ typing.substr(0,s)+' - - -';
    }
    if (C < (r * reps)) {
    sT = setTimeout("typeMessage()", speed);
    C++;
    s++;
    }
    else {
    C = 0;
    s = 0;
    mC++;
    if(mC > p - 1) {mC = 0;}
    sT = null;
    setMessage();
       }
    }
    setMessage();
    </script>
    Grazie!
    Ultima modifica di ThinoRhobu : 29-08-2008 alle ore 14.00.29

  2. #2
    L'avatar di dementialsite
    dementialsite non è connesso Super Moderatore
    Data registrazione
    19-10-2004
    Residenza
    fuori Padova
    Messaggi
    5,046

    Predefinito

    Hai una pagina in cui si veda il codice in esecuzione? A vederlo il listato sembra corretto... sicuro di averlo riportato bene qui?

    Stammi bene...
    Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?

    When you don't know your next step... improvise

    ALTERVISTA WANTS YOU!
    Vuoi diventare moderatore su AlterVista? Scopri come...

  3. #3
    Guest

    Predefinito

    Citazione Originalmente inviato da dementialsite Visualizza messaggio
    Hai una pagina in cui si veda il codice in esecuzione? A vederlo il listato sembra corretto... sicuro di averlo riportato bene qui?

    Stammi bene...
    Questa è la pagina provvisoria sulla quale sto lavorando: http://www.thinorhobu.altervista.org/aindex.php

  4. #4
    L'avatar di dementialsite
    dementialsite non è connesso Super Moderatore
    Data registrazione
    19-10-2004
    Residenza
    fuori Padova
    Messaggi
    5,046

    Predefinito

    Ho provato con Firefox e, dopo la quinta frase, mi restituisce l'errore "typing is undefined". Da qui si evince che il tuo script forse non imposta correttamente la variabile mC (che dovrebbe regolare il messaggio selezionato): prova a verificare se la variabile p è correttamente impostata (basta un "alert(p)" subito la dichiarazione, che poi rimuoverai finito lo script).

    Stammi bene...
    Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?

    When you don't know your next step... improvise

    ALTERVISTA WANTS YOU!
    Vuoi diventare moderatore su AlterVista? Scopri come...

  5. #5
    Guest

    Predefinito

    Purtroppo io di JS non ci capisco un h, ho preso il codice e l'ho copiato, tutto qua. Ho notato che nemmeno l'originale funzionava.

  6. #6
    L'avatar di dementialsite
    dementialsite non è connesso Super Moderatore
    Data registrazione
    19-10-2004
    Residenza
    fuori Padova
    Messaggi
    5,046

    Predefinito

    Quello che intendevo dire era questo: aggiungi questa riga
    Codice:
    alert ('p = ' + p);
    subito dopo la riga
    Codice:
    var p = message.length;
    per verificare se la variabile "p" (che dovrebbe contenere il numero di messaggi totali) è impostata correttamente. Se così è, dovrebbe uscire una finestrina con scritto "p = 5". Se non esce o esce qualcosa di diverso, allora c'è qualche problema.

    (Dallo script finale poi questa riga andrà tolta, serve solo a fare funzioni di "debug"...)

    Stammi bene...
    Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?

    When you don't know your next step... improvise

    ALTERVISTA WANTS YOU!
    Vuoi diventare moderatore su AlterVista? Scopri come...

  7. #7
    Guest

    Predefinito

    L'alert mi da 5, suppongo sia corretto così, giusto?

  8. #8
    Guest

    Predefinito

    Potresti provare a fare un setTimeout usando loa funzione che scrive i messaggi ogni volta che sono finiti.
    Mi spiego meglio:
    1) conti i secondi in cui lo script si esegue
    2) alla fine dello script scrivi:
    Codice PHP:
    setTimeout('funzionescritturamessaggi()','numerodisecondidelloscript+1');
    in maniera tale da farlo ripetere all'infinito

  9. #9
    Guest

    Predefinito

    Ok, ci provo. La mia domanda ora è: la visualizzazione dell'errore dello script persisterà?

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •