2010-11-29 9 views
0

J'ai une application qui s'exécute dans une nouvelle fenêtre. Il existe plusieurs formes pour générer une exportation PDF. Lorsque je soumets un de ces formulaires, la fenêtre perd son focus et la fenêtre d'origine réapparaît lorsque le téléchargement apparaît.observer formulaire soumettre une réponse cibler un iframe

J'ai créé un iframe, donc les formulaires peuvent cibler l'iframe et la fenêtre courante ne perd pas son focus. Cela fonctionne très bien, mais je ne sais pas comment observer la réponse à l'intérieur de l'iframe si tout s'est bien passé.

Voici comment cela fonctionne jusqu'à présent. J'utilise prototypeJS.

<iframe id="pdf_frame" name="pdf_frame" style="display:none;"></iframe> 

<form id="PDF_gen" name="PDF_gen" target="pdf_frame" action="pdf.pl"> 
     <input type="hidden" name="size" value=""> 
     <!-- more hidden inputs --> 
</form> 
<input type="button" id="pdf_submit" value="generate pdf"> 

JS:

$('pdf_submit').observe('click', function(){ 
    //write stuff to hidden inputs 
    $('PDF_gen').submit(); 
}); 

Si quelque chose va mal, le dialogue de téléchargement ne semble pas. Lors de l'utilisation des prototypes form.request(), le navigateur ne sait pas comment gérer la réponse et n'appelle pas la boîte de dialogue de téléchargement. Comment puis-je le faire correctement?

Merci d'avance!

Répondre

0

Quand quelque chose va mal dans le iframe vous pouvez essayer de déclencher un événement de la iframe à sa fenêtre parent (en supposant que nous sommes sur le même domaine, il ne fonctionnera pas inter-domaines):

parent.document.fire('something:went_wrong') 

et que le document parent écouter cet événement:

document.observe('something:went_wrong', function() {...}); 
+0

Bien sûr, mais je ne saura pas si quelque chose va mal parce que je ne peux pas accéder à la réponse d'état – koko

Questions connexes