我目前正在完成一个网页在php。
基本上有一些数据需要输出到Excel文件。谷歌一下后,我找到了这个PHPExcel项目,然后用它输出数据。很好。
现在,当上述数据输出发生时,我使用window.open(URL_OF_THE_MAKEOUTPUT.PHP_FILE_GOES_HERE)
javascript函数,因此保存数据的当前窗口是完整的。现在,当excel文件生成并开始下载到客户端计算机时,我想关闭第二个窗口。
到目前为止,我知道这一小段代码有问题
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename=report-'.date('d.m.Y').'.xls');
因此,我不能在后面执行->
echo "<script>window.close;</script>";
我试过使用
ob_start("callback");
在页首,
ob_end_flush();
在最后,但仍然没有运气。
任何想法?
提前通知!!
请勿使用window.open
打开弹出窗口。如果你在主窗口调用你的URL,它是一个下载(这是由于你的header()
调用),你的浏览器将是智能的,并在窗口中留下现有的页面/数据完好无损。所以不需要弹出窗口
你可能想做的是用这个代替:
location.href = URL_OF_THE_MAKEOUTPUT.PHP_FILE_GOES_HERE;
它将重定向到下载脚本,因为它是一个文件附件,它不会离开当前页面,而是显示一个从浏览器下载文件对话框。