How do I detect popup blocker in Chrome?

2019-01-21 17:33发布

I have searched many issue in stack overflow and might be duplicate here Detect Popup

But not helped for me while testing in Chrome (tested v26.0.1410.64)
Following Approach Worked in IE and Firefox but not in Chrome

var popup = window.open(winPath,winName,winFeature,true);
 if (!popup || popup.closed || typeof popup.closed=='undefined'){
       //Worked For IE and Firefox
        alert("Popup Blocker is enabled! Please add this site to your exception list.");
        window.location.href = 'warning.html';
 } else {
        //Popup Allowed
        window.open('','_self');
        window.close();
} 

Any better solution that works for Chrome also?

6条回答
再贱就再见
2楼-- · 2019-01-21 18:07

The below code works in chrome,safari and firefox. I have used jquery for this.

var popupWindow = window.open("http://www.google.com","directories=no,height=100,width=100");

$(document).ready(function(e) {
    detectPopup();
    function detectPopup() {
    if(!popupWindow) {
        alert("popup will be blocked");

    } else {
        alert("popup will be shown");
        window.open('','_self');
        window.close();
    } 
}
});
查看更多
Fickle 薄情
3楼-- · 2019-01-21 18:11

Finally, it success by combining different answer from Stackoverflow's member
This code worked for me & tested in IE, Chrome & Firefox

var popup = window.open(winPath,winName,winFeature,true);
 setTimeout( function() {
    if(!popup || popup.outerHeight === 0) {
        //First Checking Condition Works For IE & Firefox
        //Second Checking Condition Works For Chrome
        alert("Popup Blocker is enabled! Please add this site to your exception list.");
         window.location.href = 'warning.html';
    } else {
        //Popup Blocker Is Disabled
        window.open('','_self');
        window.close();
    } 
}, 25);
查看更多
该账号已被封号
4楼-- · 2019-01-21 18:13

I found it much more effective to use try-catch as follows:

var popup = window.open(winPath,winName,winFeature,true);
try {
    popup.focus();
} catch (e) {
    alert('popup blocked!');
}
查看更多
叼着烟拽天下
5楼-- · 2019-01-21 18:14

I had used this method to open windows from js and not beeing blocked by Chrome. http://en.nisi.ro/blog/development/javascript/open-new-window-window-open-seen-chrome-popup/

查看更多
Evening l夕情丶
6楼-- · 2019-01-21 18:17

I know this is "resolved", but this simple code worked for me detecting "Better Popup Blocker" extension in Chrome:

  if (!window.print) {
    //display message to disable popup blocker
  } else {
    window.print();
  }
}

Ockham's razor! Or am I missing something and it couldn't possibly be this simple?

查看更多
萌系小妹纸
7楼-- · 2019-01-21 18:25

Try Below..!!

var pop = window.open("about:blank", "new_window_123", "height=150,width=150");

// Detect pop blocker
setTimeout(function() {
if(!pop || pop.closed || pop.closed == "undefined" || pop == "undefined" || parseInt(pop.innerWidth) == 0 || pop.document.documentElement.clientWidth != 150 || pop.document.documentElement.clientHeight != 150){
pop && pop.close();
alert("Popups must be enabled.");
}else{
alert("Popups is enabled.");
pop && pop.close();
}}, 1000);

Look on below question

Detect blocked popup in Chrome

How do I detect whether popups are blocked in chrome

On Google It will more help you..

https://www.google.com/search?q=how+to+detect+a+blocked+popup+in+chrome

查看更多
登录 后发表回答