Visualizzazione dei risultati da 1 a 4 su 4

Discussione: quiz/refresh a tempo

  1. #1
    Utente di HTML.it L'avatar di Gabbro
    Registrato dal
    Nov 2000
    Messaggi
    828

    quiz/refresh a tempo

    salve,
    stò creando una pagina che fà dei quiz casuali.
    una volta mostrata la domanda l'utente ha 10 secondi per rispondere scaduti i quali la pagina refresha e l'utente perde la possibilità di rispondere a quella domanda. il problema è che se l'utente clicca sul pulsante "termina" di explorer come ben sappiamo la pagina non refresherà e lui avrà tutto il tempo di rispondere alla domanda, magari aprendo google cercherà la risposta e poi selezionarà la risposta giusta.

    esiste un js o uno script che forza il browser a refreshare dopo tot secondi?

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Non e` una gran soluzione, dato che se uno non ha JS abilitato non funziona.

    Comunque puoi provare:

    <head>
    <script type="text/javascript">
    var tempo;
    </script>
    </head>
    <body onload="tempo=setTimeout('self.location.reload()', 10000);">

    ...
    <input ... onchange="clearTimeout(tempo);">

    Ricorda di spegnere il timeout se l'utente risponde, con un clearTimeout (tipo quello sopra), altrimenti il timer prosegue e fa comunque il refresh.

    Se metti lo script non mettere il meta refresh.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  3. #3
    Utente di HTML.it L'avatar di Gabbro
    Registrato dal
    Nov 2000
    Messaggi
    828
    grazie per la soluzione...
    posso evitare in qualche modo che loro disabilitini i javascript. ovvero se hanno i javascript disalibitati non possono "quizzare" ?

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Evitare che disabilitino il JS non e` possibile (sarebbe una grave violazione della privacy).

    Fare inmodo chela pagina perda alcune funzionalita`, si`:

    <noscript>


    Il tuo browser non permette i Js, per cui non potrai inviare il form</p>
    </noscript>

    Poi devi impostare a disabled qualche campo:
    <input type="submit" name="campoinvia" .... disabled="true">
    che poi abiliterai con script all'onload:
    <body onload="document.NOMEFORM.campoinvia.disabled=fals e; tempo=setTimeout('self.location.reload()', 10000);">

    Oppure (forse e` meglio):
    imposti l'action del form ad una pagina di errore
    <form ... action="error.php" ...>
    che poi cambi con JS all'onload:
    <body onload="document.NOMEFORM.action='veraaction.php'; tempo=setTimeout('self.location.reload()', 10000);">
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

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.