De foarte multe ori inchidem paginile pe care le vizitam sau chiar browserul din atotputernicul "x" (close). Acest lucru nu dauneaza din moment ce ne-am obisnuit sa facem asta, iar browserul si sistemul de operare nu au nimic impotriva.

In anumite situatii, insa, acest lucru poate deveni daunator. De exemplu impartim un calculator pe care avem cont de admin si plecam inchizand ferestra in care lucram, conform obisnuintei. In aceste conditii, cineva care vine dupa noi poate accesa pagina noastra de administrare care nu va mai cere datele de logare si nu vrem sa se intample asta. In plus, noi ca programatori organizati, ne place sa lasam lucrurile in ordine cand plecam dintr-o pagina, sa inchidem sesiunile si bazele de date si sa stergem eventualele cookie-urile, chiar daca serverul face asta oricum.

In alte situatii, cand avem o pagina de reclama, dorim ca vizitatorul sa stea mai mult pe ea si sa dea macar un click (pe mine personal, ma deranjeaza acest obicei).

Pentru aceste situatii, si altele, scriptul acesta este folositor.

Scriptul cere confirmarea inchiderii ferestrei curente de navigare sau a browserului si, daca aceasta se confirma, poate executa niste sarcini inainte de inchidere (de exemplu face "curat" si delogheaza admin-ul).

Problema

Sa inplementam in pagina noastra o procedura de atragere a atentiei atunci cand inchidem o pagina mai "sensibila".

Solutie

        var AskBeforeClose = true;
        window.onbeforeunload = function() {
            if(AskBeforeClose)
                return "Mesaj de avertizare.";
            else
                AskBeforeClose = true;
        };
        window.onunload = function() { try { exit(this); } catch(err) { alert(err); } };
        window.onbeforeunload=closeSession

        function exit(window) {
            //some code before exit.
            //i.e. window.open("logout.php");

        }
            

Explicatii

Fisierul logout.php este fisierul ce contine toate instructiunile ce trebuiesc executate dupa ca am fost de acord cu inchiderea paginii sau a browserului.

Observatii

Solutia poate fi folosita fara nicio restrictie si fara consecinte negative. A fost incercata pe toate browserele majore, ultimele versiuni. Pe Opera nu merge.

Multe multumiri...

Internetului ca exista si celor care ne mai spun pe gratis cate ceva, chiar daca i-a costat mult timp sa invete!

Daca articolul v-a fost util, va rugam sa lasati un comentariu.