簡體   English   中英

如何檢測瀏覽器是否支持window.close?

[英]How to detect whether a browser supports window.close?

我正在構建一個應用,身份驗證流程如下

  • 用戶單擊登錄按鈕
  • 將打開一個登錄窗口。
  • 根據窗口的查詢字符串,將用戶重定向到Facebook,Google或Twitter。
  • 當用戶從fb / google / twitter返回時,我的后端會生成一個auth令牌,然后彈出窗口使用postMessage將auth令牌發送到主頁,以驗證來源
  • 收到令牌后,主頁將關閉窗口。

此流程在台式機設備上效果很好,但在移動瀏覽器中效果不佳,因為window.open會打開無法以編程方式關閉的新標簽頁。

在移動設備上,我可以將用戶重定向到登錄屏幕,並使用哈希片段中的auth令牌(oauth2隱式流)將他們發送回去,但我只想在必須這樣做時這樣做。 如何檢測window.close是否在沒有瀏覽器嗅探的情況下工作?

我嘗試過的

我嘗試使用基於HTML / JS的模式對話框以及iframe,但是Google的登錄頁面不允許將其嵌入iFrame,也沒有嘗試與其他提供程序一起使用

您可以檢查對象檢測是否支持window.close()

if (window.close) {
    alert ('window close is supported');
}

進行不帶paranthesis ()的檢查,因為您不想執行該功能,但是想要檢查該功能/對象的存在。

暫無
暫無

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

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