2010-12-06 39 views
0

Je veux accomplir quelque chose de très simple. Je fais référence à un site Web via un Iframe.Désactiver l'événement OnBeforeUnload: Comment envoyer du Javascript à un iframe inter-domaines?

L'iframe a une fonction avec invocation de "onBeforeUnload". Je veux désactiver avant de décharger dans l'iframe, à partir de ma page parente.

J'ai trouvé comment faire cela sur le même domaine, et sur la même page. Cependant, comment puis-je faire cela pour le domaine croisé?

Je ferai tout ce qu'il faut, peu importe la complexité, pour que cela fonctionne.

<iframe src="http://www.domain.com" width="100%" height="500" id="iframe"></iframe> 

<script type="text/javascript"> 

$(document).ready(function() { 

$('#iframe').load(function() { 
     alert('Load was performed.'); 
    document.getElementById('iframe').contentWindow.window.onbeforeunload=null; 
//NOTE: DOESN'T WORK CROSS DOMAIN! 
    }); 

    window.onbeforeunload=null //Disables onbeforeunload event on THIS page so long as it is AFTER the original onbeforeunload event 

    }); 

</script> 

Merci!

Répondre

0

Ceci n'est tout simplement pas possible en raison de la politique de même origine, à moins que vous n'ayez votre propre code en cours d'exécution dans l'iframe.

Dans ce cas, vous pouvez utiliser easyXDM pour faire cela - mais si c'était le cas, vous auriez juste à supprimer directement le gestionnaire?

+0

Donc, il n'y a AUCUN moyen possible est ce que vous dites ... pas même un script d'entraînement fou pour remplacer leur onBeforeUnload, avec le mien dans la page parente, par exemple? Tout ... –

+0

Non, ce n'est pas possible et cela nuirait à la POS si c'était le cas. –

+0

Très bien, peut-être vous avez la réponse à une autre de mes questions directement liées à ceci: http://stackoverflow.com/questions/4384885/how-to-trick-fool-an-iframe-to-thinking-its-the- top-élément-en-dom –