2010-04-08 80 views
5

好了,所以我使用鉻的Ubuntu 9.10,不能得到這個工作使用的檢測彈出式窗口攔截這是正常的手段......檢測阻止彈出在Chrome

var popup = window.open(...); 
var blocked; 
if(!popup) { 
    blocked = true; 
} else { 
    blocked = false; 
} 

此外,在此SO帖子中接受的解決方案Detect blocked popup in Chrome不起作用。

+1

它不起作用? – 2010-04-08 23:37:41

+0

Chrome瀏覽器中的window.open()即使在彈出窗口被阻止的情況下也返回一個已定義的對象 – 2010-04-08 23:57:34

回答

0

如果這是同一個域名的頁面,請檢查popup.innerHeight。如果它是0,彈出窗口很可能被阻止。

+0

console.log(popup.outerHeight)顯示了275,這實際上是我傳遞給window.open的高度屬性 – 2010-04-09 17:10:36

+0

Flash84x:你可能也想嘗試'innerHeight'。 – 2010-04-09 19:11:24

+0

當彈出窗口被阻止並且彈出窗口可見時,innerHeight爲0,所以沒有骰子: - \ – 2010-04-12 16:52:52

2

popup.innerHeight不再有效。使用outerHeight,如果大於零,則不會被阻止。