簡體   English   中英

重定向到自動打開的MS Office(word,excel,powerpoint)文檔后,如何關閉瀏覽器窗口?

[英]How can I close the browser window after redirecting to an MS office(word,excel, powerpoint) document automatically opened?

在我正在處理的Web應用程序中,我們有一些長期運行的過程,負責獲取Office文檔。 我們基本上用window.open打開一個彈出窗口,該窗口負責輪詢服務器以報告進程狀態並等待文檔的可用性,並在就緒時重定向到生成的文檔(window.location = THE_URL_OF_THE_FILE)。

發生重定向時,根據用戶配置(請參閱Microsoft知識庫),MS Office文檔可能會直接在Internet Explorer中打開/嵌入,也可能會在Office Office的新實例中打開文件。

在后一種情況下,文檔將在Excel中成功打開,但是導致其打開的窗口將永遠保留在那里。

有沒有一種方法可以在Excel成功加載文件后立即強制關閉該窗口?

我希望這與IE和Windows之間的集成工作有某種關系...

編輯

$.ajax({
           async: false,
           type: 'Post',
           dataType: 'json',
           url: '/Controller/Action/' + docId,
           data: $('form').serialize(),
           success: function (url) {
               window.open(url, 'ShowFile', 'top=25,left=50,width=680,height=400,help=1,status=1,scrollbars=1,toolbars=1,menubar=1,resizable=1',false);
       }
   });

她的電子文檔在新的單詞實例中打開,並且在打開文檔后該窗口仍保持打開狀態。.但是,在新的Ms office實例中打開文件時,該窗口應關閉。 網址是服務器上指向文檔的位置。

這是不可能的。 出於很多原因:

  1. 更改window的位置后,您將無法執行任何代碼-完成
  2. 在新窗口中打開的文檔無法與舊窗口通信,因為它不是HTML頁面,並且您無法在其中執行任何JavaScript
  3. 無法說明如何處理文檔。 您可以根據瀏覽器類型和所使用的操作系統進行一些猜測工作,但這始終是猜測。 它既可以下載,也可以在某些插件中打開,也可以在Chrome Frame中本機打開(即將推出的功能),也可以在MS Word中自動打開...可能的結果是無窮的。

我建議您重新考慮您的網站邏輯。

我建議執行一些AJAX而不是打開一個新窗口,並使用它來檢查文檔的狀態,並在准備好之后在新窗口中打開它。

如果您確實需要打開一個新窗口來執行此操作,建議您更改窗口(您用來打開彈出窗口的窗口)的document.location 之后關閉彈出窗口。 這不會將頁面重定向到新位置,而是按照您的描述打開文檔(但是,根據用戶的設置,不能保證該行為)。

以下是使用Java腳本打開/關閉窗口的代碼段(來源: http : //www.w3schools.com/jsref/met_win_close.asp )。 您可以根據需要進行修改:

<html>
<head>
<script>
function openWin()
{
myWindow=window.open("","","width=200,height=100");
myWindow.document.write("<p>This is 'myWindow'</p>");
}

function closeWin()
{
myWindow.close();
}
</script>
</head>
<body>

<input type="button" value="Open 'myWindow'" onclick="openWin()">
<input type="button" value="Close 'myWindow'" onclick="closeWin()">

</body>
</html>

您可以使用jQuery並在window.open上實現某種回調。 另外,如果該窗口是通過javascript從另一個窗口打開的,則存在一個父屬性。 它可用於在兩個窗口之間進行通信。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM