it-swarm.com.de

Wie erkenne ich Popup-Blocker in Chrome?

Ich habe viele Probleme im Stapelüberlauf gesucht und könnte doppelt vorkommen hier Popup erkennen

Aber not helped for me beim Testen in Chrome (getestet v26.0.1410.64)
Folgender Ansatz Worked in IE and Firefox aber 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();
} 

Gibt es eine bessere Lösung, die auch für Chrome funktioniert?

15

Schließlich gelingt es durch die Kombination verschiedener Antworten von Stackoverflow-Mitgliedern
Dieser Code hat für mich funktioniert und wurde in IE, Chrome & Firefox getestet.

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);
19

Ich fand es viel effektiver, Try-Catch wie folgt zu verwenden: 

var popup = window.open(winPath,winName,winFeature,true);
try {
    popup.focus();
} catch (e) {
    alert('popup blocked!');
}
2
cw24

Versuchen Sie es unten .. !!

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);

Schauen Sie sich die Frage unten an

Ermittle blockiertes Popup in Chrome

Wie erkenne ich, ob Popups in Chrome blockiert sind

Bei Google hilft Ihnen das mehr ..

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

2
Kishan Patel

Ich weiß, dass dies "gelöst" ist, aber dieser einfache Code funktionierte für mich, als ich die Erweiterung "Better Popup Blocker" in Chrome erkannte:

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

Ockhams Rasiermesser! Oder fehlt mir etwas und es könnte unmöglich so einfach sein?

0
Adam

Ich hatte diese Methode verwendet, um Fenster von js zu öffnen und nicht von Chrome blockiert zu werden. http://en.nisi.ro/blog/development/javascript/open-new-window-window-open- gesehen-chrome-popup/

0
Cooper M.

Der folgende Code funktioniert in Chrome, Safari und Firefox. Ich habe Jquery dafür benutzt.

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();
    } 
}
});
0
user5345000