重定向到Excel中自动打开的Excel文件后,如何关闭浏览器窗口?

时间:2011-10-11 15:16:42

标签: javascript internet-explorer

在我正在处理的Web应用程序中,我们有一些长期运行的进程负责生成Excel文档。我们基本上打开一个带有window.open的弹出窗口,它负责轮询服务器以报告进程状态并等待文档的可用性,并在准备好时重定向到生成的文档(window.location = THE_URL_OF_THE_FILE

当重定向发生时,根据用户配置(请参阅Microsoft Knowledge base),可以直接在Internet Explorer中打开/嵌入Excel工作表,也可以在新的Excel实例中打开该文件。

在后一种情况下,文档在Excel中成功打开,但导致其打开的窗口永远保留在那里。

有没有办法在Excel成功加载文件后立即关闭该窗口?

我希望这与IE和Windows之间的集成工作方式有某种关系......

2 个答案:

答案 0 :(得分:1)

一个选项是让弹出窗口进行重定向(通过元重定向,javascript等等),然后在允许浏览器获取Excel的一些时间后使用javascript超时关闭窗口文件。

<html>

<head>
    <meta http-equiv="refresh" content="0;http://example.com/yourfile.xls" />
    <script type="text/javascript">
        function closeMe() {
            window.close();
        }
        setTimeout(closeMe, 5000);
    </script>
</head>

<body>
</body>
</html>

如果Excel在浏览器中弹出,那么html / js将会消失。否则,Excel将在一个单独的窗口中启动,然后JS在5秒后启动以关闭弹出窗口。

答案 1 :(得分:0)

从臀部拍摄,但我会在父窗口中设置一个全局变量(javascript),然后在我的轮询窗口打开excel文档后检查它。如果变量仍然存在,则表示文档已在excel中打开。如果该变量不存在,您就知道在浏览器中打开了excel文档。