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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 !