2010-11-29 59 views
0

我有一个应用程序在新窗口中运行。有几种形式可以生成PDF导出。当我提交这些表单之一时,窗口失去了焦点,当下载出现时,原始窗口再次弹出。观察表单提交响应,目标是一个iframe

我创建了一个iframe,所以表单可以定位iframe,并且当前窗口不会失去焦点。它工作的很好,但我不知道如何观察iframe中的响应,如果一切顺利的话。

以下是迄今为止的工作方式。我正在使用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(); 
}); 

如果出现错误,下载对话框不会出现。当使用原型form.request()时,浏览器不知道如何处理响应,并且不会显示下载对话框。我该怎么做对不对?

在此先感谢!

回答

0

当不顺心的事在iframe你可以尝试火从iframe到它的父窗口的事件(假设我们是在同一个域,它不会工作跨域):

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

,并有父文档侦听该事件:

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

当然,但我不知道的东西是否出了问题,因为我无法访问状态响应 – koko 2010-12-01 07:33:42