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