我想创建一个包含框架(div也能正常工作)的网站,其中有一个外部页面,一旦用户在框架中的页面上下载文件,我想触发一个事件。 Filedownload由表单提交触发。这可能吗? 谢谢。 编辑:我可以编写PHP,ASP,jQuery和一点点Java,但我总是愿意学习更多。
我可以将表单的操作替换为另一个文件,该文件会将POST数据重定向到原始表单操作页面,但也会收到GET数据。 对不起,我可能没有使用正确的条款。
答案 0 :(得分:0)
当用户单击表单上的提交按钮时,jQuery可以触发一个函数来运行。
jQuery("#downloadLink").click(function(){alert('user has clicked the download link');});
* 注意: *这将在用户开始下载时执行,而不是在下载完成后执行。
编辑:这不需要访问外部页面的代码,您根本不必操纵表单的操作。
答案 1 :(得分:0)
您可以通过一些技巧检测下载的开始,但不是下载结束。
要检测下载的结束,您可以拥有服务器,而不是发送下载帮助。
要检测开始,下载页面首先执行一些javascript代码,告诉你“下载已开始”,类似于window.parent.downloadStarted()
,并在父窗口中有一个downloadStarted()函数。
然后在运行之后将iframe重定向到执行下载的真实页面。
为了检测下载的结束,提供下载的程序必须发出信号。最好的办法是使用APC并设置变量,然后不断轮询第二页,检查变量是否已设置,并报告回来。
答案 2 :(得分:0)
不是我的,但我发现这个引用应该使用AJAX http://www.sitepoint.com/forums/showthread.php?618233-Detecting-File-Download-Completion
进一步扩展: Browser event when downloaded file is saved to disk
您可以使用一些花哨的东西来判断客户端何时断开连接,但在某些情况下您似乎仍然可能会出现误报。