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?
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);
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!');
}
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
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?
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/
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();
}
}
});