onbeforeunload événement sur l'iframe n'est pas déclenché dans google chrome, fonctionne dans IE, firefox
Si vous définissez une unbeforeunload événement à l'intérieur d'une iframe, ce n'est pas déclenché lorsque vous avez par exemple cliquer sur un lien dans l'iframe. Il fonctionne sous IE et Firefox (pas de l'Opéra, mais Opera ne supporte pas onbeforeunload en général, autant que je sache).
Demandais juste, me suis-je trompé? Si ce comportement ne pas être possible? Ou est-ce un bug dans Google Chrome/webkit? Aucune solution de contournement?
Exemple de Code:
test.html:
<html>
<body>
<p>Main page content</p>
<script type="text/javascript">
window.onbeforeunload = function() {alert('unloadevent in main window');};
</script>
<iframe id="tpa" src="..test2.html"></iframe>
</body>
</html>
test2.html:
<html>
<body>
<script type="text/javascript">
self.onbeforeunload = function() {alert('unloadevent in frame window');};
</script>
<a href="http://www.google.com/">Link to for instance google</a>
</body>
</html>
OriginalL'auteur AMO | 2010-07-03
Vous devez vous connecter pour publier un commentaire.
C'est corrigé maintenant. Voir Le Billet.
OriginalL'auteur nickfletcher
J'ai trouvé un indélicat, la méthode pour le résoudre.
Dans mon parentPage qui détient le nom de domaine "a.b.com":
Dans mon "c.d.com":
Avoir un essai!
OriginalL'auteur Yarch
Semble que c'est une question ouverte dans webkit (et pas sur le point d'être bientôt corrigé):
https://bugs.webkit.org/show_bug.cgi?id=19418
Si quelqu'un sait de solutions de contournement, laissez-moi savoir.
OriginalL'auteur AMO
L'alternative peut être de gérer l'événement de clic dans votre iframe liens au niveau du document ou pour pré-traiter l'iframe page et de modifier les liens pour l'exécution de votre personnalisé JS gestionnaire. Supprimer la propagation de l'événement click basé sur des règles d'entreprise.
OriginalL'auteur lnaie