簡體   English   中英

在IE9中,如何檢測彈出窗口已重定向回同一域

[英]In IE9, how do I detect a popup window has been redirected back to the same domain

編輯:由於某種原因,間隔確實看到了一些東西,但崩潰並停止循環而沒有進入if語句

這是我的流程。

  • 窗口通過window.open()在同一個域上打開彈出窗口
  • popup重定向到twitter
  • 彈出窗口被重定向回同一個域(回調網址)
  • 彈出窗口中的變量需要發送回窗口。

這在Chrome中運行良好,但在IE9上中斷。

我嘗試了什么(都在chrome中工作)

在彈出窗口中:

window.opener.function(data);
window.close();

在窗口中:

var checkInterval = setInterval(function(){
    if (win.variable){ // win = popup window!
        clearInterval(checkInterval);
        win.close();
       // works!
    }
}

但是在IE9中都不起作用。 我該如何解決這個問題?

當彈出窗口進入twitter時,域不再相同,因此在IE9中,當嘗試讀取頁面上的變量時,它將崩潰。

要么檢查window.opener是否可用(意味着你在同一個域)並確保在訪問變量(首選)之前它是相同的,或者在try / catch中封裝if語句

var checkInterval = setInterval(function(){
    try {
       if (win.variable){ // win = popup window!
           clearInterval(checkInterval);
           win.close();
          // works!
       }
    } catch (e) {}
}

一個非常簡單的方法是使用錨點傳回變量

所以你的回調網址將如下所示:

http://example.com/index/#var1:value1,value2/var2:value3,value4 ...

在jQuery中使用hashchange插件將使您的生活變得非常簡單,以便處理您的問題。

此外,您可以使用在IE9中運行的核心Javascript使用hasher微庫

暫無
暫無

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

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