Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 19
  1. #1

    Inattività dell'utente

    Ciao a tutti!
    Io avrei bisogno di una funzione che faccia il redirect, dopo l'inattività dell'utente. Per inattività intendo il fatto che il cursore rimanga fermo in una determinata posizione per n secondi.

    Questa è la funzione js di redirect.

    function redirect() {
    location.href = "home1.php";
    }
    //10 secondi per il redirect
    window.setTimeout("redirect()", 10000);

    Cosa mi suggerite?
    "La grandezza dell'uomo si misura in base a quel che cerca e all'insistenza con cui egli resta alla ricerca".

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    In pratica ad ogni evento devi resettare il timer:

    var ttt;


    ttt = setTimeout('window.location.href="home1.php", 10000);

    Quindi devi riscrivere quella riga in ogni evento:
    onclick (su tutti gli elementi)
    onmousemove (idem)
    onkeydown / onkeyup (su tutti gli elementi incui ti interessa)
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  3. #3

    Alla faccia...

    eh, mi sa che non è troppo agevole...

    credo che imposterò il redirect di default ogni 30 minuti.
    Non posso fare diversamente.

    Pensavo che ci fosse un modo per rilevare le coordinate del cursore e dire..se il cursore rimane x tempo su quella posizione effettua il redirect.

    Qualcosa del genere?
    "La grandezza dell'uomo si misura in base a quel che cerca e all'insistenza con cui egli resta alla ricerca".

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Rilevare le coordinate del cursore non e` semplice.
    O meglio credo sia semplice se il cursore e` su qualche oggetto, ma non su tutti; e nei vari browser il codice puo` essere diverso.

    Poi si tratta di stabilire con precisione cosa intendi per inattivita`.
    Perche` ad esempio il mouseover e mouseout su vari oggetti puo` essere rilevato facilmente (in modo standard); il click su vari oggetti, pure; l'attivazione della tastiera (su pochi oggetti - senza rilevare i caratteri), anche.

    Pertanto se e` semplice o difficile dipende dalla tua pagina.
    Ad esempio se ci sono oggetti disposti a formare una griglia (piu` o meno fitta) la cosa puo` essere relativamente semplice (nota che esistono anche oggetti trasparenti).


    Invece il tuo "edirect di default ogni 30 minuti" non mi piace molto. Se uno sta facendo qualcosa non e` bello togliergli la pagina di sotto il mouse.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  5. #5

    Tieni conto di una cosa...

    Quello che sto sviluppando è per qualcosa che dovrà essere fruibile in locale e non in remoto. Quindi ci sono molte logiche classiche che cambiano. L'idea di avere una pagina che rimane la stessa per 30 minuti è sinonimo di inattività dell'utente, almeno dal mio punto di vista.
    "La grandezza dell'uomo si misura in base a quel che cerca e all'insistenza con cui egli resta alla ricerca".

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Certo che se cambi le carte in tavola ...

    In effetti la prospettiva e` diversa.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  7. #7
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    codice:
    <script type="text/javascript">
    var timer=false;
    function funzione(){
    	alert('la funzione è stata richiamata')
    }
    
    function handlerMM(){
    	if(timer) clearTimeout(timer)
    	timer=setTimeout('funzione()',3000)	
    }
    
    
    if (document.layers || window.opera){
    	window.captureEvents(Event.MOUSEMOVE);
    	window.onmousemove=handlerMM;
    }
    else document.onmousemove=handlerMM;
    </script>
    x es. questo rileva se il puntatore resta fermo (N.B. sulla parte visibile del documento) per 3 secondi
    (x 30 minuti al posto di 3000 scrivi 1800000 cioè 30*60*1000)
    ciao

  8. #8
    Grandioso!!!
    Questa è uno script perfetto!

    Ti ringrazio tantissimo!
    "La grandezza dell'uomo si misura in base a quel che cerca e all'insistenza con cui egli resta alla ricerca".

  9. #9
    codice:
    <script type="text/javascript">
    var timer=false;
    function funzione(){
    	alert('la funzione è stata richiamata')
    }
    
    function handlerMM(){
    	if(timer) clearTimeout(timer)
    	timer=setTimeout('funzione()',3000)	
    }
    
    
    if (document.layers || window.opera){
    	window.captureEvents(Event.MOUSEMOVE);
    	window.onmousemove=handlerMM;
    }
    else document.onmousemove=handlerMM;
    
    </script>
    Scusate l'ignoranza...mi potreste "tradurre" la parte di codice in grassetto?
    La più grande forza a disposizione dell'umanità è la non violenza (Ghandi).
    (15/06/2003 - 16 points, 17 rembounds and 1 standing ovation x Admiral David Robinson ... San Antonio Spurs~ 2003/5 NBA champions)

  10. #10
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Si tratta di gestore gli eventi in modo diverso per i vari browser.

    Nel caso di NN4 (document.layers) o di Opera l'evento viene catturato con il metodo captureEvent() ,
    per gli altri browser no.

    In tutti i casi viene lanciata la funzione handlerMM() all'evento mousemove.

    Questo per quanto riguarda la traduzione letterale.

    Come si e` visto questi metodi non li conoscevo, per cui non ti so dare altre informazioni.

    Ma domando:
    Sono metodi standard (cioe` indicati dal W3C) o sono singole implementazioni dei browser?
    E ancora: quanto e` diffusa l'implementazione nei browser di questi metodi?
    E sono validi con il linguaggio XHTML Strict (verosimilmente obbligatorio per i siti pubblici, secondo la legge Stanca) ?
    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.