onbeforeunload ne se fait qu'une seule fois
Bonjour,
Je viens de passer une heure à chercher la réponse à ma question via des tests en sur Google et je ne trouve pas ...
Donc voici ce fameux problème :
Je suis dans une page HTML qui contient une iframe (dont l'id est 'frameBody').
Code:
1 2 3 4
|
<iframe id="frameBody" name="frameBody"
src="./action001" width="100%" height="100%"
frameborder="0" marginwidth="0" marginheight="0"></iframe> |
A la fin du chargement de cette page j'ai le script suivant :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
|
<script type="text/javascript">
var iframeElement = document.getElementById('frameBody');
if (iframeElement){
var iframeWindow = iframeElement.contentWindow.window;
iframeWindow.onbeforeunload = handleChangeIframe;
}
function handleChangeIframe(e){
alert(' Une alerte' );
message = 'Les modifications non sauvegardées ne seront pas conservées.';
if (!e){
e = iframeWindow.event;
}
// For IE and Firefox
if (e) {
e.returnValue = message;
}
// For Safari
return message;
}
</script> |
Mais alors voilà le problème c'est que ça fonctionne une première fois, puis au prochain changement d'iframe la fonction handleChangeIframe() n'est pas appelée.
J'ai l'impression que la fonction a été désenregistrer ...
Alors voilà si qq'un pouvait me dire pourquoi ce onbeforeunload ne fonctionne qu'une fois ça serait génial !