簡體   English   中英

如何檢測 window.close() 是否無法執行?

[英]How to detect if window.close() fail to execute?

在我的腳本中,我需要執行window.close(); ,但它有失敗的機會(注意:見下文解釋) ,所以我想跟進window.close(); 使用window.history.back() ,它將用戶重定向回頁面並返回到正確的 Web 流。

我嘗試了以下方法:

代碼 1

window.close();
window.history.back();

以上一直有效,但是如果我這樣做:

代碼 2

window.close();
alert("123");
window.history.back();

在窗口甚至可以關閉之前發出警報 所以讓我想知道代碼 1 是否是一個可以安全使用的代碼。

所以我有以下問題:

  • 假設在代碼 1 中, window.close()將始終在window.history.back()之前運行是否安全?

    • 並且只有在不允許window.close()的情況下,才會window.history.back()
  • 如果沒有,那么是否有可能檢測到window.close()未被調用的事件? 所以我可以從那里開始並執行我想要的代碼

筆記:

  • 該代碼在多個平台上運行,我發現在 iOS10 SFSafariViewController 中,由於某種原因它不知道window.close() ,因此我需要在知道window.close() window.history.back()后調用window.history.back() window.close()失敗

謝謝!

怎么樣

try {
  window.close();
}
catch(err) {
  window.history.back();
}

我在這里找到了一些可以對其進行詳細解釋的內容,但實際上,答案是您做不到 最好的辦法是使用onunloadonbeforeunload檢測unload事件。 嘗試使用這些,看看會發生什么。

您是否考慮過添加try .. catch塊?

try {
window.close();
}
catch(error) {
console.error(error);
// Note - error messages will vary depending on browser
}

文檔

暫無
暫無

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

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