11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

Voici mon probléme,J'ai définit une fonction dans un iframe caché qui affiche une boite de dialogue et je souhaiterais que cette boite de dialogue s'affiche dans la fenetre principale.

Voici le code de ma page principale :
<script type="text/javascript">
<!--
function dial(){
 
new Dialog().showMessage('Titre', 'Contenu', 'OK');
 
}
 
//-->
</script>
 
<!--
d'autre action html effectué ici
...
...
-->
 
<!--bouton pour valider la page et effectué le traitement dans un iframe caché-->
<form TARGET="frame" id= "scoreForm" enctype="multipart/form-data" action ="traitement.php" method="POST">
 
			
<!-- bouton qui permet d'afficher son score-->
	<input type="submit" value="Afficher votre score" name="afficher"/>
 
</form>
	
<!--frame qui vas contenir le resultat-->
	<iframe id="frame" name= "frame" src="frame.html" Frameborder="no" style='visibility:hidden'></iframe>
 


Code de la page traitement.php (effectué dans l'iframe):

//traitement php
<?php...
....
?>
<SCRIPT LANGUAGE = "JAVASCRIPT"> 
		<!-- 
		 window.parent.dial(); 
		//--> 
</SCRIPT>
<?php
....traitement php
....
?>


Le probleme est que cela n'affiche rien dans la fenettre principale pire en utilisant la console d'erreur de firefox il me dit que "parent" n'est pas défini meme si je remplace par top meme message "top n'est pas défini"
Il pourrait être intéressant dans un premier temps de rendre le contenu de cette iframe visible et éventuellement d'y afficher des informations de debug. Cela pourrait donner des pistes sur la suite de la résolution du problème.
J'ai oublié de présicer que cela est intégrer à une application facebook...

J'ai essayer avec parent ,parent.document,window.top,top..

J'ai aussi essayé avec l'iframe visible est rien d'anormal s'y affiche mais par contre en utilisant l'outil de debug de firefox cela me dit que parent n'est pas défini,ou que parent.document n'est pas défini
Les navigateurs imposent des restrictions de visibilité entre une frame et un autre si elles n'appartiennent pas au même "espace", au même domaine, pour éviter les abus de cross site scripting (sans cela il serait facile pour un site d'ouvrir une iframe sur un autre site et d'en manipuler le contenu).

Il est possible que là soit l'origine de ton problème. Malheureusement il n'y a rien à faire.