Visualizzazione risultati 1 fino 3 di 3

Discussione: Chiusura finestra con avviso

  1. #1
    icfast non è connesso Utente
    Data registrazione
    15-05-2011
    Messaggi
    107

    Predefinito Chiusura finestra con avviso

    Ho una domanda da fare.
    C'è un modo per far apparire un alert se l'utente cliccasse la "x" per la chiusura della pagina in alto nel broswer?
    intendo soltanto la "x", non anche al click nei link come con questa funzione..
    Codice:
    1
    window.onbeforeunload = function(){
       return 'Arrivederci e buon viaggio! Torna a trovarci!';
    }
    vorrei che il messaggio apparisse SOLO al click della "x" in alto,
    grazie
    Ultima modifica di icfast : 03-02-2012 alle ore 16.09.01

  2. #2
    L'avatar di radiodelmomento
    radiodelmomento non è connesso AlterGuru
    Data registrazione
    09-09-2010
    Messaggi
    1,075

    Predefinito

    Non so se si può fare quello che vuoi.
    Potresti usare onunload e poi vedere se l'utente ha cliccato con il mouse tramite onclick.
    Quindi dovresti fare una cosa del genere (non l'ho provato ma credo proprio che non funzioni, è solo per darti l'idea).
    Codice:
    <script>
    window.onload = function() {
    	if(click){
    		alert('Non sei uscito con la X');
    	}else{
    		alert('Sei uscito con la X');
    	}
    }
    </script>
    Ripeto: sono convinto che non funzioni, ma è solo per farti vedere come potresti fare.
    Ciao!

  3. #3
    Guest

    Predefinito

    Vediamo quindi come effettuare un classico messaggio alla chiusura di una pagina. Iniziamo parlando dell'evento incriminato: window.onbeforeunload. Questo evento, come si deduce dal nome, esegue una funzione data nel momento in cui si cerca di lasciare la pagina.

    Codice:
    1
    window.onbeforeunload = function(){
    2
       return 'Arrivederci e buon viaggio! Torna a trovarci!';
    3
    }
    se inseriamo nel nostro file javascript (oppure tra i tag <script> e </script> le righe qui sopra, all'uscita della pagina verremmo salutati con un bel Ciao! Bello no?

    No! Non fatelo assolutamente così! Ve lo proibisco!

    Perché? Perché questo ciao ci tormente ogni volta che cerchiamo di uscire dalla pagina! Diventerà un incubo per chiunque!

    La cosa migliore da fare è proporlo agli utenti solamente una volta. Questo si può fare con i cookie.

    Codice:
    1
    window.onbeforeunload = function(){
    2
       if ( (document.cookie.indexOf('messaggioFastidioso') == -1){
    3
          document.cookie = "messaggioFastidioso=1; expires=" + new Date(new Date().setTime(new Date().getTime() + 24 * 60 * 60 * 1000)).toGMTString();
    4
          return 'Arrivederci e buon viaggio! Torna a trovarci!';
    5
       }
    In questo esempio se il cookie messaggioFastidioso non esiste lo creiamo e visualizziamo il messaggio, in caso contrario non facciamo nulla. In pratica il messaggio viene visualizzato solo ogni 24 ore.

    Nulla di complicato, vero?
    Possiamo combinare varie cose fino ad ottenere questa simpatica funzioncina di mia invenzione:

    visualizza sorgentestampa?
    Codice:
    01
    /**
    02
     *
    03
     * Mostra un messaggio all'uscita di una pagina
    04
     *
    05
     * @author     Giulio "Chalda" Bettega
    06
     * @license    http://opensource.org/licenses/gpl-license.php GNU Public License
    07
     * @link       http://blog.chalda.it/?p=145
    08
     * @version    1.0.20091217
    09
     *
    10
     */
    11
     
    12
    // Inizializzo il timer
    13
    var startTimer = new Date().valueOf();
    14
     
    15
    // Aggiungo una funzione prima che la pagina venga chiusa
    16
    window.onbeforeunload = function() {
    17
     
    18
       // Recupero il tempo trascorso
    19
       var timer = parseInt(new Date().valueOf() - startTimer)/1000;
    20
     
    21
       // Controllo di non aver ancora mostrato il messaggio
    22
       if ( (document.cookie.indexOf('richiestaCommenti') == -1) && (timer > 60) ){
    23
     
    24
          // Per le prossime 24 ore non mostro più il messaggio
    25
          document.cookie = "richiestaCommenti=1; expires=" + new Date(new Date().setTime(new Date().getTime() + 24 * 3600000)).toGMTString();
    26
     
    27
          // Il messaggio da visualizzare
    28
          return 'Stai leggendo questa pagina da più di un minuto! ' + '\n'
    29
               + 'Probabilmente l\'hai ritenuta interessante!' + '\n'
    30
               + 'Che ne dici di farmelo sapere con un commento?';
    31
       }
    32
    }
    Come si può capire leggendo i commenti questa funzione mostra il messaggio solamente ogni 24 ore e solamente a chi rimane sulla pagina per più di 60 secondi, in modo da non importunare coloro i quali giungono per sbaglio sul nostro sito (ricordo che il 90% non resta su di una pagina per più di 10 secondi, il restante 10% sono coloro che hanno trovato quello che cercavano )

    Questa funzione è implementata in questo post, quindi, se siete arrivati a leggere fin qui, quando lascerete la pagina vi costringerò a lasciare un messaggio

Regole di scrittura

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