Sto riscontrando strani problemi con jQuery (1.6.x). Ho questo semplice chiamata sulla mia pagina:Perché jQuery a volte sovrascrive window.onbeforeunload?
window.onbeforeunload = function() { return 'Are you sure ?'; };
Ma non funziona, perché, come ho scoperto, jQuery sovrascrive il contenuto del window.onbeforeunload. In console JS, posso vedere che window.onbeforeunload contiene pezzo di codice jQuery:
function(e) {
// Discard the second event of a jQuery.event.trigger() and
// when an event is called after a page has unloaded
return typeof jQuery !== "undefined" && (!e || jQuery.event.triggered !== e.type) ?
jQuery.event.handle.apply(eventHandle.elem, arguments) : undefined;
};
C'è un modo posso trovare perché e dove jQuery sovrascrive la mia funzione onbeforeunload? Quando provo a eseguire jsfiddle vuoto con solo jQuery caricato e con la mia funzione onbeforeunload, funziona come previsto.
Eventuali suggerimenti saranno apprezzati. Grazie in anticipo.
EDIT:
Solo nel caso, qualcuno suggerisce di utilizzare:
$(window).bind('beforeunload', function() { return 'Are you sure';});
ho già provato e si comporta allo stesso modo utilizzando JavaScript puro.
È possibile utilizzare il metodo 'unload' di jQuery? http://api.jquery.com/unload/ –
Sono in grado di applicare correttamente la mia funzione a 'onbeforeunload' e io uso jQuery 1.6. C'è qualche altra informazione o codice che puoi fornire? Non funziona in tutti i browser? http://jsfiddle.net/Kai/QgVE8/ – Kai
Stai urlando nello spazio. Fornisci un caso di test che riproduca questo problema e possiamo aiutarti. – mekwall