2013-05-21 25 views
13

Sto lavorando in un'applicazione Flex4, utilizzando javascript, nel documento "index.template.html". Sto avendo un problema in grado di utilizzare onbeforeunload con Firefox. L'applicazione funziona perfettamente in IE, ma lo stesso identico non si adatta bene con FF. (Vedi sotto)Usa JQuery o onbeforeunload per IE e FF

<script type="text/javascript"> 
window.onbeforeunload=before; 
window.onunload=after; 

function before(evt) 
{ 
    var flex=document.$(application)||window.$(application); 
    flex.unloadMethod(); //custom method to log out the user 
} 

function after(evt) 
{ 

} 
</script> 

Da quello che ho trovato, FF non sembra registrare onbeforeunload eventi, così ho trovato che la cosa popolare da usare al posto è vincolante con jQuery. Così, ho cancellato il codice precedente e l'ho sostituito con il codice seguente, ma non mostra un pop-up quando l'utente prova a lasciare la pagina sia in IE che in FF. Chiunque stia usando JQuery per questo sembra fare esattamente la stessa cosa, quindi non so cosa sta succedendo.

<script type="text/javascript"> 
$(window).bind("beforeunload",function(event){ 
    return "This should create a pop-up"; 
}); 
</script> 

Alla fine sarebbe bello chiamare la "flex.unloadMethod" come nel primo pezzo di codice, ma per il momento sto solo cercando di ottenere un pop-up a lavorare così so che Sono sulla buona strada. Qualsiasi intuizione sarebbe molto apprezzata.

+0

Hai '$ (window) .bind ("beforeunload", funcation (event) {' - notare di aver scritto 'function' sbagliate – Ian

+0

Grazie per avermi fatto sapere Copia di codice da un computer separato, in modo da esso. non è la causa – Brian

risposta

30

Prova:

<script> 
    $(window).on('beforeunload', function(){ 
     return "This should create a pop-up"; 
    }); 
</script> 

Esempio: http://jsfiddle.net/AeztA/3/

+0

Grazie per la risposta, ma l'ho provato e non ha funzionato, mi è stato anche detto di non usare un avviso per creare il pop-up. avviso, quindi ha solo un pulsante OK per premere (non annullare). Inoltre, sei in scarico che sarà troppo tardi per cercare di registrare qualcuno se stanno uscendo dalla mia pagina. – Brian

+0

Ho appena aggiornato il mio codice (il precedente uno funzionava ovunque tranne Chrome). Funziona ora in tutti i browser che ho provato. – Joe

+0

Sto testando il tuo nuovo codice in IE, ma quando cambio l'URL o esco dalla finestra, Il pop-up non appare. C'è qualcosa che devo importare? – Brian

1

Vorrei aggiungere che ho capito che non è possibile utilizzare una stringa vuota in Firefox. Deve essere almeno 1 vuoto per esempio come ritorno.

var text = 'Exit Message'; 

$(window).on('beforeunload', function(){ 
    return " " + text; 
});