2009-11-16 28 views
0

我在iframe中有一个表单,当这个表单发布后,一个文件返回给用户(基于表单信息)。该文件使用content-disposition:attachment返回,因此只显示文件保存对话框。一旦文件返回给用户,我想在JavaScript中做一些事情。我试着附加一个$(iframe).ready();在表单发布之后发送到iframe,但它瞬间熄灭。在发布表单上准备好的事件

值得注意的是: $(iframe).load();也不工作,它从来没有被触发。 表单帖子在技术上是iframe的第二次加载(第一次加载在iframe中显示表单)。

任何想法?

回答

0

唯一想到的就是不要立即将文件发送回给用户,而是要输出一个HTML框架,1.执行Javascript和2.完成后,重定向到下载文件(可能与额外的<meta>重定向以确保它可以工作)。除此之外,我认为你不会有很多机会在提供一个下拉文件的情况下执行Javascript。

+0

,因为我需要它,该文件的处理可能需要30秒,这是行不通的。当下载被触发时,我设置一个处理函数,当下载“准备就绪”时,我想结束处理功能并向用户提供一些附加信息。 – aepheus 2009-11-16 19:19:37

+0

为什么不将文件保存在临时位置(而不是直接输出)并在显示信息后将用户重定向到那里? – 2009-11-16 19:20:35

+0

这可能会起作用,它至少会允许我结束处理功能并通过中间页面显示附加信息。虽然,我担心在将所有这些文件保存在服务器端时的可伸缩性。 – aepheus 2009-11-16 19:32:33

0

你可以尝试在表单提交后在iframe回调中添加一些脚本,以便在父窗口中运行一个函数?

父窗口

function test(){ 
alert('Success!'); 
} 

回调的iFrame

$(window).load(function(){ 
parent.test(); 
})