Posso visualizzare una finestra di dialogo di conferma quando l'utente sta chiudendo la finestra in Safari / Chrome?

StackOverflow https://stackoverflow.com/questions/803887

Domanda

In IE e FF, posso collegare un gestore di eventi a onBeforeUnload e passando una stringa a una proprietà dell'evento, l'utente vedrà una finestra di dialogo che gli chiederà se desidera continuare con lo "scarico" " (chiudendo la finestra o allontanandosi).

Safari e Chrome non supportano onBeforeUnload e onUnload sembra essere troppo tardi. Esiste un modo per replicare la stessa funzionalità in Safari / Chrome?

NOTA: non sto cercando di tenere in ostaggio l'utente. So che questo è fastidioso e poco interessante. In effetti, il mio sito fa di tutto per consentire all'utente di spostarsi liberamente e avere tutto al suo posto quando tornano. Tuttavia, sto ospitando altri siti all'interno di IFrame e a volte questi decidono di sbarazzarsi di me e assumere il controllo del browser, che è ciò che sto cercando di evitare.

Grazie!

È stato utile?

Soluzione

Questo funziona perfettamente per me sia su Chrome che su Safari:

<html><body><p>Test</p>
<script>window.onbeforeunload = function() { return "Sure?"; }</script>
</body></html>

Quando provo a chiudere la finestra, ricevo il messaggio.

Altri suggerimenti

StackOverflow stesso usa onbeforeunload , e funziona bene per me in Safari:

function setConfirmUnload(a){window.onbeforeunload=a?function(){return a}:null}

L'ho controllato in Chrome e sembra funzionare bene usando questo:

<body onunload="alert('x');" onbeforeunload="test1();">

Questa domanda è trattata in modo leggermente più dettagliato in un'altra domanda StackOverFlow più recente: Impostazione onbeforeunload sull'elemento body in Chrome e IE utilizzando jQuery

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top