2010-01-04 16 views
10

Desidero avvisare un utente mentre l'utente tenta di chiudere il browser con out siginingoff o senza salvare alcune impostazioni.Evento di chiusura della finestra Javascript piuttosto che scaricare per tutti i browser

Io sono ding scaricano opzione in un'altra pagina per avvisare i dati scarico, ma come posso avvisare un utente su window.close (la sua non prendere)

window.onbeforeunload = confirmExit; 
function confirmExit(){ 
    if(readCookie("onlineVD") == "playing" && Confirm_Delete=="0") 
    { 
     return "You are leaving a video which is in play mode.Are you sure want to exit this page?"; 
    } 
    else{ 
     Confirm_Delete="0"; 
    } 
} 

voglio window.close per lo scheda stretta e alla finestra chiudi in tutti i browser.

Vi prego di trovare una soluzione

risposta

7

Il codice evento si è già sembra funzionare quando prova esso. Devi solo restituire false per impedire la chiusura del browser. All'utente verrà chiesto se sono sicuri di voler allontanarsi dalla pagina.

sto usando questa versione più breve del codice:

window.onbeforeunload = confirmExit; 
function confirmExit(){ 
    alert("confirm exit is being called"); 
    return false; 
} 
+0

Grazie per la tua risposta @ richard, in realtà sta lavorando per la scheda chiusa ma qui ho bisogno di chiudere anche la finestra. Quando chiudo la finestra non sta prendendo. – Elamurugan

+0

Ho provato in Firefox 3.5 e lo ha fatto, quale browser stai usando? –

+0

Testato anche in IE8 e funziona. (Aggiunto il mio esempio di codice di test alla mia risposta per testare) –

6

Il Mozilla documentation indica che è necessario impostare l'event.returnValue anziché semplicemente restituendo una stringa:

window.onbeforeunload = confirmExit; 
function confirmExit(e){ 
    if(readCookie("onlineVD") == "playing" && Confirm_Delete=="0") 
    { 
     var msg = "You are leaving a video which is in play mode.Are you sure want to exit this page?"; 
     if (e) { 
      e.returnValue = msg; 
     } 

     return msg; 
    } 
    else{ 
     Confirm_Delete="0"; 
    } 
} 
+0

Grazie per la risposta @ rubare, in realtà il suo lavoro per la scheda vicino, ma qui ho bisogno per la finestra vicino anche. Quando chiudo la finestra non sta prendendo. – Elamurugan

Problemi correlati