2011-05-17 92 views
1

可以檢測是否彈出已被封鎖在Chrome與解決這一問題:Detect blocked popup in Chrome如何檢測在Chrome中是否阻止其他域的彈出窗口?

然而,這些解決方案似乎是檢測一個頁面是在同一個域的彈出。我想知道是否有辦法檢測另一個域的頁面彈出窗口是否被阻止?

var newWindow = window.open('http://www.google.com/'); // this domain is something.com 
if (newWindow) { 
    setTimeout(function() { 
     // Is there a way to detect if newWindow was blocked? 
    }, 500); 
} 

回答

3

你會被所有常用相同的起源政策的約束,我建議你直接在他們讀了起來:http://en.wikipedia.org/wiki/Same_origin_policy。簡而言之,您正嘗試進行跨瀏覽器的安全模型所禁止的跨域通信。爲了解決這個問題,有服務器端代理,JSONP,Flash,document.domain(但只有當它是兩個不同的子域名時)以及一堆黑客根據你的支持需求和不同的成功工作試圖去做。

你能告訴我們更多關於你的瀏覽器支持要求嗎?你可以使用XHR Level 2嗎?您想要在彈出窗口中加載的頁面是什麼?

相關問題