Kontakt Home Grundlagen Scripts zum Kopieren Beispiele
JavaScript

PopUp Blocker erkennen

Was ist mit einem schönen PopUp-Fenster, wenn bei den BenutzerInnen ein Blocker aktiv ist? Das kann ja nun sogar schon der Internet Explorer und laut diversen Statistiken sehen inzwischen über die Hälfte der InternetBenutzerInnen PopUps nicht.

Also: Flugs ein Script in die Seite und eine Alternative für die 'blockierten' Browser überlegt!

Positiv getestet in: Firefox 1.0, Firefox 0.9, iCab, Internet Explorer 5.2, Mozilla 1.7.2, Mozilla Firebird 0.6.1, Safari auf Mac OS X und Internet Explorer 5 , Netscape 4.5 (hier hauen nur die Fenstergrößen nicht hin) auf Mac OS 9 (Classic) und Internet Explorer auf Win 2k.

Funktioniert nicht: Opera 7.54 auf Mac OS X.

So gehts:

Dieses Script kommt in den Kopfbereich der Seite, und die Funktion wird mit

<body onLoad="CheckFenster()">

aufgerufen.

<script language="JavaScript" type="text/JavaScript">
<!--
var ok=false;
function CheckFenster()
{

var win=window.open("popupcheck.html","win", "toolbar=no, location=no, status=no, menubar=no, scrollbars=no, resizable=no, width=100, height=100, top=10,left=10");
setTimeout("Check()", 2000);
// Diese Zahl: Zeit, die der Browser hat, um die Variable zu bekommen.
// 2000: 2 Sekunden!
}
function Check()
{
if (ok==true) {
// Browser laesst PopUps zu. Hier jetzt der Code fuers neue Fenster...
// Natuerlich koennte hier auch zu einer weiteren Seite geleitet werden.
var RichtigesFenster=window.open("datei.html", "win2", "toolbar=no, location=no, status=no, menubar=no, scrollbars=auto, resizable=yes, width=200, height=200, top=100,left=100");
}

else {
// Browser laesst PopUps NICHT zu. Hier also der Code fuer die Fensterlosen...
// Hier kann jetzt natuerlich auch zur Alternativseite weitergeleitet werden.
alert(unescape("Schade.%0AIhr Browser l%E4%DFt mein PopUp-Fenster nicht zu...%0ABitte richten Sie das in Ihren Einstellungen%21"));
}
}
-->
</script>

Das Script definiert erst einmal die Variable 'ok' als FALSE (das gilt dann, wenn kein Fenster geöffnet werden kann).

Die Funktion CheckFenster() öffnet ein neues Fenster (popupcheck.html) und behandelt nach 2 Sekunden die Variable 'ok':

Hat sich das Fenster nämlich öffnen können, so gibt es 'TRUE' zurück - und mit der if/else-Abfrage, ob 'ok' nun true oder false ist, wird dann die weitere Behandlung des Browsers gesteuert.

 

Check()

Diese Funktion enthält, was bei ein- oder ausgeschaltetem Blocker passieren soll:

In der if-Anweisung das für die Browser, die ein Fenster öffnen können – hier wird das 'richtige' Fenster geöffnet.

Und in der else-Anweisung die Alternative für PopUpBlocker – hier nur ein Alert, aber das läßt sich ja ändern.

Dazu gibt es dann noch die Seite popupcheck.html:

Diese Seite hier mit rechtem Mausklick ([Ctrl] + Klick) speichern .

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>checker</title>
</head>
<body bgcolor="#EEEEEE" text="#777777" style="padding: 3px;">
<script language="JavaScript" type="text/JavaScript">
window.opener.ok = true;
setTimeout("window.close()", 2000);
// 2000: 2 Sekunden, diese Zahl nach Belieben veraendern
</script>
<p style="font: 10px Verdana, Helvetica, Arial, sans-serif;"><strong><blink>... check</blink></strong><br>
In ca. 2 sec kommt, was eigentlich kommen soll...</p>
</body>
</html>

Das Script auf dieser Seite gibt nur die Variable 'ok' mit TRUE zurück und schließt sich anschließend nach 2 Sekunden selbst ;-)

Viel Spaß beim Basteln! hannah



ein projekt von hfl --> goto:www.liesong.de