![](/img/trans.png)
[英]How can I close the browser window after redirecting to an Excel file automatically opened in Excel?
[英]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實例中打開文件時,該窗口應關閉。 網址是服務器上指向文檔的位置。
這是不可能的。 出於很多原因:
window
的位置后,您將無法執行任何代碼-完成 我建議您重新考慮您的網站邏輯。
我建議執行一些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.