[英]In IE9, how do I detect a popup window has been redirected back to the same domain
編輯:由於某種原因,間隔確實看到了一些東西,但崩潰並停止循環而沒有進入if語句
這是我的流程。
window.open()
在同一個域上打開彈出窗口 這在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.