我有一个在新窗口中运行的应用程序。有几种形式可以生成PDF导出。当我提交其中一个表单时,窗口会失去焦点,当下载出现时,原始窗口会再次弹出。
我创建了一个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 :(得分:0)
当iframe
出现问题时,您可以尝试从iframe
向其父窗口触发事件(假设我们在同一个域中;它不会跨域工作):
parent.document.fire('something:went_wrong')
让父文件监听该事件:
document.observe('something:went_wrong', function() {...});