2011-10-11 38 views
3

在我正在處理的Web應用程序中,我們有一些負責生成Excel文檔的長時間運行的進程。我們基本上打開了一個彈出式窗口window.open,它負責輪詢服務器以報告進程狀態並等待文檔的可用性,並在準備就緒時重定向到生成的文檔(window.location = THE_URL_OF_THE_FILE)。重定向到在Excel中自動打開的Excel文件後,如何關閉瀏覽器窗口?

發生重定向時,根據用戶配置(請參閱Microsoft Knowledge base),可能會直接在Internet Explorer中打開/嵌入Excel工作表,或者可能會在Excel的新實例中打開該文件。

在後一種情況下,文檔可以在Excel中成功打開,但導致其打開的窗口會永久保留。

有沒有辦法強制該窗口關閉,只要Excel成功加載文件?

我希望這是主題相關的IE瀏覽器和Windows之間的整合是如何工作的?

+0

我現在正在處理這個相同的問題。用戶點擊「導出到Excel」按鈕,實際上服務器已經將電子表格發送到計算機 –

回答

0

從臀部射擊在這裏,但我會在父窗口設置一個全局變量(JavaScript的),然後檢查因爲我的投票窗口打開了excel文件後。如果該變量仍然存在,那麼您知道該文檔已在Excel中打開。如果該變量不存在,則知道在瀏覽器中打開了excel文檔。

+0

後沒有事件使進度條模型消失,彈出的進度監視器打開的整個點是針對用戶在完成過程時繼續瀏覽應用程序。我不能依靠父窗口 – tsimbalar

1

一個選項是讓彈出窗口進行重定向(通過元重定向,javascript等),然後使用JavaScript超時關閉窗口後允許一段時間的瀏覽器獲取Excel文件。

<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

這感覺有點不對,不是嗎?不保證瀏覽器能夠在5秒內打開文件,是嗎?不過,我會試一試 – tsimbalar

相關問題