Necesito capturar un evento que debería activarse justo antes de que desaparezca el contenido del iframe.
He estado tratando de lograr algo como esto
$iframe = $('iframe');
$iframe.beforeunload(function () {
debugger;
});
O
$iframe = $('iframe');
$iframe.unload(function () {
debugger;
});
Incluso he intentado vincularlo a la ventana del iframe sin suerte.
$iframe = $('iframe');
$iframe[0].contentWindow.onunload = function () {
debugger;
};
Ninguno de estos controladores de eventos realmente se activa para mí
y estoy bastante confundido por qué. Para recargar el iframe que uso .reload()
desde fuera del iframe y desde dentro, ¿tal vez necesito usar un método diferente?
¡Lo averigué! yo no sabia el contentWindow
pierde su referencia después de una recarga.
$iframe.load(function () {
$iframe[0].contentWindow.onbeforeunload = function () {
debugger;
};
});
-
En las versiones modernas de jQuery (3.x), debe cambiar esto a
$iframe.on( 'load', function(){ ... } );
– Miguel Sánchez Villafán
11 de noviembre de 2020 a las 1:50
¿Qué tal: $iframe = $(‘iframe’)[0];
– Lanza
08/06/2015 a las 20:58
Entonces: $iframe.contentWindow.onunload = función…
– Lanza
08/06/2015 a las 20:58
Hmm, esta debería ser la equivalencia:
$iframe[0].contentWindow.onunload
– Máx.
08/06/2015 a las 21:00
Sí, pensarías, pero he visto cosas más estúpidas…
– Lanza
08/06/2015 a las 21:06