PopUp - Blocker

bauchinj

Erfahrenes Mitglied
Hallo!

Kann man mittels JavaScript ermitteln, ob beim Browser eingestellt ist, dass PopUps geblockt werden?

Danke für eure Antworten
 
Servus,

eigentlich nicht wirklich, es gibt keine echte Information des Browsers an JS darüber, ob ein Popupblocker am Werk ist.

Was geht: da ein Popup ja ein in JS verfügbares window-Objekt mit seinen entsprechenden Methoden/Eigenschaften ist, kann man, nachdem der Versuch vorgenommen wurde, ein Popup zu Öffnen, prüfen, ob dieses auch existiert.
Das geht aber halt erst nach dem Öffnungs-Versuch.

Aber mal reel betrachtet:
Ich gehe mittlerweile einfach davon aus, dass jeder einen Popupblocker an hat und verfahre dementsprechend.
 
Hallo nochmal!

Code:
<script type="text/javascript">
var PopUp;
</script> 
<input type="button" value="PopUp öffnen!" onclick="PopUp= window.open('','webinterface','resizable=yes,fullscreen=yes,location=no');" />
<input type="button" value="Teste ob geöffnet!" onclick="alert(PopUp.document ? 'PopUp offen' : 'PopUp geschlossen')" />

So funktionierts, auch wenn der Pop-Up-Blocker aktiv ist!

<script language="javascript">
var win;
win = window.open("","win","resizable=yes,fullscreen=yes,location=no");

Code:
function openWindow(){
	alert(typeof win);
	if(typeof win == 'undefined'){
		document.writeln("Bitte erlauben Sie Pop-ups für diese Seite!");
	}
	else{
		//win.location.href = "index.php";
		//this.location.href = 'http://www.tutorials.de';
	}
	alert(win.document ? 'PopUp offen' : 'PopUp geschlossen')
}
</script>
<?
echo "<script type=\"text/javascript\">openWindow();</script>";
?>

win ist leider nicht vom Typ 'undefined' sondern 'object'. Es wird KEIN Fenster geöffnet, sondern geblockt! Meine Frage, wie erkenne ich, ob das Fenster geöffnet wurde, so funktionierts wohl nicht :-(
 
Hallo hab mich nun duchgerackert:
getestet sind folgende Browser (bei mir funktionieren diese Versionen):

Code:
win= window.open("http://www.google.at","win","resizable=yes,fullscreen=yes,location=no");
if(win == null){
	//IE 8
	alert('IE');
}
else if(win.document == undefined){
	//safari 3.2.1
	alert('Safari');
}
else if(win.document == undefined){
	//google chrome 4
	alert('Chrome');
}
else if(win == null){
	//firefox 3.5.7
	alert('Firefox');
}
else{
	alert('OK');
}

Ein Sorgenkind hab ich allerdings noch: OPERA 10.10 - hat bei diesem Browser jemand ne Lösung?
 
Bei meinem Opera(9.50) gehts so:

Code:
try{
    if(window.opera && typeof win.opera=='undefined')
    {
      alert('Opa hats geblockt');
    }
  }catch(e){}

Beachte, dass du da generell etwas mehr mit try/catch arbeiten musst.
Sofern du da externe Seiten im Popup öffnen willst(nehme ich mal an, oder bist du Besitzer von google.at? :)) , verursachst du Fehler, wenn das Popup nicht geblockt wurde und du auf seine Eigenschaften wie bspw. document zugreifen willst.
 
Zurück