|

Das schwebende Fenster
Die Position des aufpoppenden Fensters festlegen
Die Adresseleiste aufblenden
Die toolbar aufblenden
Die Statuszeile aufblenden
Methoden des Windows Objektes: Die Methode focus()
Methoden des Windows Objektes: Die Methode close()
Die Methode close(): Ein Fenster nach einer gewissen
Zeit schliessen
Die Methode moveTo(): Ein Fenster über den
Bildschirm wandern lassen
Der Autor dieses Dokumentes ist ja eigentlich
der Meinung, das es zu viele Leute gibt, die einen Hang zum
Multimedia Overkill haben. Dass es Leute gibt, die durch technische
Spielereien über die Tatsache hinwegtäuschen wollen,
dass sie im Grunde nichts zu sagen haben. Es gibt aber auch
technologische Verfahren, die eindeutig zu selten eingesetzt
werden und hierzu gehören die Pop up Fenster. Es gibt
Seiten, die einen auf eine neue Seite weiterleiten, auch wenn
diese neue Seite lediglich vier Sätze enthält. In
einem solchen Fall ist es günstiger, man schiesst diese
Zusatzinformationen in ein Pop up Fenster und lässt den
User da wo er ist, damit er anschliessend weiterlesen kann.
Besonders zeitraubend und nervtötend ist die Variante,
dass eine aus einer Datenbank generierte Treffermaske nur
eine Kurzform des Datensatzes anzeigt und man irgendwo clicken
muss, um alle Informationen des Datensatzes zu sehen. Gegen
data drilling (erst Kurzform und dann kompletter Datensatz)
ist erstmal gar nichts einzuwenden, sehr wohl aber gegen die
Unsitte, den kompletten Datensatz in ein neues Fenster zu
schiessen und die Treffermaske wegzuschiessen. Es ist günstiger,
den kompletten Datensatz in ein schwebendes zu schiessen und
die Treffermaske stehen zu lassen. Wir gehen davon aus, dass
jeder das kennt, wer es noch nie gesehen hat, kann hier
clicken. Das Programm ist von faszinierender Einfachheit und
sieht so aus.
<script language="JavaScript">
function aufblenden(a)
{
fenster2=window.open("","fenschterle",
'width=567,height=200,scrollbars=yes');
fenster2.focus();
}
</script>
<A href=beispiele/aufblend.htm onClick=aufblenden() target=fenschterle>hier</A>
Bis auf diese zwei Zeilen, dürfte
alles klar sein.
1) fenster2=window.open("","fenschterle",
'width=480,height=400,scrollbars=yes');
2) fenster2.focus();
Diese zwei Zeilen sind zwar im Prinzip auch selbserklärend,
aber man kann zwei Worte darüber verlieren. 1) kreiert
ein neues Window Objekt. Die Methode open des Objektes Window
erlaubt es, neue Fenster zu kreieren. Sie hat drei Parameter.
Der erste ist in diesem Beispiel leer. Hier kann man, anstatt
Inhalt via target reinzuschiessen wie es hier gemacht wird,
die Url einer Website eingetragen, so dass diese dann geladen
wird. Das sieht dann so aus.
<script language="JavaScript">
function aufblenden2()
{
fenster2=window.open("beispiele/aufblend.htm","fenschterle",
'width=567,height=200,scrollbars=yes');
fenster2.focus();
}
</script>
<A href=javascript:aufblenden2()>hier</A>
Man kann gerne wieder hier
clicken, aber das Resultat ist mit dem obigen völlig
identisch, nur dass jetzt die Seite von der Funktion open
gezogen und nicht von unten reingedrückt wird. Der zweite
Parameter, in unserem Falle fenschterle hat die selbe Funktion
wie der Name bei einem Frame. Gibt man via target=fenschterle
das aufpoppende Fenster als Ziel an, dann wird das, was man
via Hyperlink angibt, in dieses Fenster geschossen. Von dieser
Möglichkeit haben wir im ersten Beispiel Gebrauch gemacht.
Es ist hierbei unerheblich, ob es sich bei dem, was man reinschiessen
will um eine simple HTML Seite handelt oder um das Ergebnis
eines serverseitig arbeitenden Programmes. Diese Seite arbeitet
zum Beispiel mit einer Suchmaschine, die die ganze Website
nach Schlagwörtern durchsucht. Will man die Ergebnisse
der Suche in ein aufpoppendes Fenster schiessen, kann man
sowas machen.
<html><head><title>Suchmaschine</title>
<script language="JavaScript">
function aufblenden3()
{
fenster2=window.open("","fenschterle",
'width=567,height=200,scrollbars=yes');
fenster2.focus();
}
</script>
</head>
<body>
<form action=suchmaschine.pl target=fenschterle>
<input type=hidden name=modul value=1>
Gesuchte Wörter <input type=text name=wort><br>
Alle <input type=radio name=alle value=ja> oder eines
<input type=radio name=alle value=nein checked> finden
<br>
<input type=submit value=suchen onClick=aufblenden3></form>
</body></html>
Wer will, kann es ausprobieren.
Am besten gibt man perl oder php ein,
denn diese Wörter sind reichhaltig im Angebot. Die Suchmaschine
selbst kann man übrigens hier
downloaden. Meistens ist die Situation, wenn sowas gebraucht
wird aber etwas anders. Meistens ist es eher so, dass man
schon weiss, nach was gesucht werden soll, weil eine Datenbankabfrage
bereits durchgeführt wurde. In diesem Falle möchte
man an das aufgerufene Programm lediglich einen oder mehrere
Paramter übergeben, die z.B. den Datensatz, den man sucht
eindeutig identifizieren. Das sieht dann so aus.
<html><head><title>Suchmaschine</title>
<script language="JavaScript">
function aufblenden3()
{
fenster2=window.open("","fenschterle",
'width=567,height=200,scrollbars=yes');
fenster2.focus();
}
</script>
</head>
<body>
<A href=http://www.infos24.de/cgi-bin/startseite/suchmaschine.pl?modul=1&wort=xml
target=fenschterle onClick=aufblenden()>Nach dem Wort XML
in der Website www.infos24.de suchten</a>
</body></html>
Hier werden also die Parameter, die das
serverseitig arbeitende Skript braucht, direkt an die Url,
als Query String, angehängt.
<A href=http://www.infos24.de/cgi-bin/startseite/suchmaschine.pl?modul=1&wort=xml
target=fenschterle onClick=aufblenden5()>Nach dem Wort
XML in der Website www.infos24.de suchten</a><br>
Wer das ausprobieren will, der kann auf den
unten stehenden Hyperlink clicken.
Nach dem Wort XML in der Website www.infos24.de suchten
Wie deutlich zu sehen, ist das Verfahren ziemlich einfach
und es gibt folglich keinen Grund, dem armen User ständig
die Treffermaske wegzuschiessen, wenn er sich die Detailansicht
eines Datensatzes anschauen will.
Als dritten Parameter übergeben wir die Eigenschaften
des Windows Objektes. Hierbei ist folgende Regel zu beachten.
Erfolgen keine Angaben, wird ein komplettes Fenster aufgebaut,
mit allen Eigenschaften, wie Adressleiste, Menüleiste,
Status Leiste etc. Erfolgt aber die Angabe auch nur eines
Parameters, dann werden nur die Eigenschaften gezeigt, die
tatsächlich angegeben wurden. Exempla statut.
<html><head><title>Suchmaschine</title>
<script language="JavaScript">
function aufblenden3()
{
fenster2=window.open("","fenschterle",
"");
fenster2.focus();
}
</script>
</head>
<body>
<A href=http://www.infos24.de/cgi-bin/startseite/suchmaschine.pl?modul=1&wort=xml
target=fenschterle onClick=aufblenden()>Nach dem Wort XML
in der Website www.infos24.de suchten</a>
</body></html>
Man kann sich auch das wieder anschauen.
Nach
dem Wort XML in der Website www.infos24.de suchten Wir
erhalten das gleiche wie im Beispiel vorher, allerdings werden
die Ergebnisse jetzt in ein komplett ausgestattes Browserfenster
geschossen, das im dritten Parameter keine Werte mehr übergeben
werden. Ingesamt gibt es etwa 25 Werte, die mit dem dritten
Parameter übergeben werden können. Schauen wir uns
die wichtigsten an.
| Die
Position des aufpoppenden Fensters festlegen |
|
Unter Umständen will man nicht, dass sich
das aufpoppende Fenster irgendwo hinsetzt. Unter Umständen
hätte man es gern an einer bestimmten Stelle. Das kann
man so erreichen.
<script language="JavaScript">
function aufblenden()
{
fenster2=window.open("","fenschterle",
'width=567,height=200,scrollbars=yes,top=10,left=10');
fenster2.focus();
}
</script>
<A href=beispiele/aufblend.htm onClick=aufblenden()
target=fenschterle>hier</A>
Wer es ausprobieren will, kann
hier
clicken. Wie deutlich zu erkennen, poppt
das Fenster jetzt nicht mehr irgendwo auf, sondern so, dass
die linke obere Ecke 10 Pixel Abstand hat von oben (top) und
10 Pixel Abstand von links (left) hat. Das funktionniert sowohl
mit Netscape als auch mit dem Explorer ab 6.0. Die verschiedenen
Menüleisten können eingebaut werden, indem man die
entsprechende Leiste angibt und als Wert yes eingibt. Dabei
ist
| location |
Die Adressleiste, also das Eingabefeld
für eine URL |
| toolbar |
Ist die Zeile, wo der vor bzw. zurück Button
und die anderen Knöpfe zum Navigieren stehen |
| menubar |
Ist die Zeile, wo Datei Bearbeiten Favoriten
Extra steht |
| status |
Ist die unterste Zeile des
Browsers, also da, wo z.B. die Url steht, wenn man über
einen Hyperlink fährt |
Veranschaulichen wir das nochmal anhand einiger
Beispiele
| Die
Adresseleiste aufblenden |
|
<script language="JavaScript">
function aufblenden()
{
fenster2=window.open("","fenschterle",
'width=567,height=200,scrollbars=yes,top=10,left=10,location=yes');
fenster2.focus();
}
</script>
<A href=beispiele/aufblend.htm onClick=aufblenden()
target=fenschterle>hier</A>
Wer es sehen will, kann
hier
clicken.
Man kann sie aufblenden, indem man sowas macht.
<script language="JavaScript">
function aufblenden()
{
fenster2=window.open("","fenschterle",
'width=567,height=200,scrollbars=yes,top=10,left=10,location=yes,toolbar=yes');
fenster2.focus();
}
</script>
<A href=beispiele/aufblend.htm onClick=aufblenden() target=fenschterle>hier</A>
Wer es sehen will, kann hier
clicken. (Ein Unterschied zum vorherigen Beispiel ergibt sich
nur, wenn das voerherige Fenster geschlossen wird.)
Die
Statuszeile aufblenden |
|
Die Statuszeile ist, wie bereits erwähnt,
die Zeile, in der die Url gezeigt wird, wenn man über
einen Hyperlink fährt.
<script language="JavaScript">
function aufblenden10()
{
fenster2=window.open("","fenschterle",
'width=567,height=200,scrollbars=yes,top=10,left=10,location=yes,toolbar=yes,status=yes');
fenster2.focus();
}
</script>
<A href=beispiele/aufblend.htm onClick=aufblenden10() target=fenschterle>hier</A>
Wer es sehen will, kann hier
clicken. (Ein Unterschied zum vorherigen Beispiel ergibt sich
nur, wenn das voerherige Fenster geschlossen wird.)
Methoden
des Windows Objektes: Die Methode focus() |
|
Eine Methode wurde hier schon die ganze Zeit
verwendet, nämlich focus(). Diese Funktion ist ausgesprochen
wichtig, weil ohne diese Methode nicht gewährleistet
ist, dass ein Fenster, dass dadurch iconisiert wurde, dass
der User neben das schwebende Fenster geklickt hat, sich wieder
aufoppt, wenn er es wieder aufruft. Ohne focus() bleibt es
als Icon unten am Bildschirm stehen. Es wird zwar der neue
Inhalt reingeschossen, aber es poppt nicht mehr auf, so dass
der weniger erfahrene User den Eindruck hat, es passiert nichts.
Folglich macht es Sinn, wie hier in allen Beispielen vorgeführt,
mit der Methode focus() dafür zu sorgen, dass das Fenster
immer wieder aufpoppt.
Methoden
des Windows Objektes: Die Methode close() |
|
Seltener braucht man close(), weil der User
ja auch einfach auf das Kreuz rechts oben im Fenster clicken
kann, dann ist das Fenster auch zu. Brauchen könnte man
close() wenn man das Fenster nach einer gewissen Zeit schliessen
will. Wir zeigen für die beiden Fälle ein Beispiel.
Mit close() ein Fenster schliessen
<script language="JavaScript">
function aufblenden11()
{
fenster2=window.open("","fenschterle",
'width=567,height=200,scrollbars=yes,top=10,left=10,location=yes,toolbar=yes,status=yes');
fenster2.focus();
}
function schliessen()
{
fenster2.close();
}
</script>
<A href=beispiele/aufblend.htm
onClick=aufblenden10() target=fenschterle>aufblenden</A>
<A href=javascript:schliessen()>schliessen</A>
Das Fenster aufblenden: hier
clicken.
Das Fenster schliessen: hier
clicken.
Die
Methode close(): Ein Fenster nach einer gewissen Zeit
schliessen |
|
Man kann wollen, dass sich ein Fenster nach
einer gewissen Zeit schliesst. In JavaScript lässt sich
das so realisieren, dass man mit window.setTimeout eine Funktion
aufruft, in diesem Falle eben eine, die das Fenster schliesst.
<script language="JavaScript">
function aufblenden12()
{
fenster2=window.open("","fenschterle",
'width=567,height=200,scrollbars=yes,top=10,left=10,status=yes');
fenster2.focus();
window.setTimeout("schliessen()",10000);
}
function schliessen()
{
fenster2.close();
}
</script>
<A href=beispiele/aufblend2.htm
onClick=aufblenden12() target=fenschterle>hier</A>
Das Fenster aufblenden: hier
clicken.
Die
Methode moveTo(): Ein Fenster über den Bildschirm
wandern lassen |
|
Wir betreten das Reich des Multimedia Overkill.
Das ist jetzt was für Leute, die nichts zu sagen haben
und mit irgendwelchen Gimmicks von dieser Tatsache abzulenken
versuchen, bis der User völlig entnervt die Seite verlässt.
Unter Umständen erreicht man damit auch ein "Wow,
wie geht den das ?", was aber auch nicht hilft, da der
User nichts erfährt, was ihn wirklich weiterbringt. Wer
es aber partout nicht lassen kann, der kann es machen. Es
geht so.
<script language="JavaScript">
aa=10;
bb=10;
function aufblenden14()
{
fenster2=window.open("","fenschterle",
'width=567,height=200,scrollbars=yes,top=10,left=10,status=yes');
window.setTimeout("weiterruecken()",10);
}
function weiterruecken()
{
fenster2.moveTo(aa,bb);
fenster2.focus();
aa=aa+5;
bb=bb+5;
if(aa <=200)
{
stop=window.setTimeout("weiterruecken()",250);
}
else
{
clearTimeout(stop);
}
}
</script>
<A href=beispiele/aufblend3.htm onClick=aufblenden14()
target=fenschterle>hier</A>
Das Fenster aufblenden: hier
clicken.
Nachdem wir uns an dem Geflackere nun ausgiebig
begeistert haben, können wir den Skript noch kurz durchsprechen,
er enthält auch einige sinnvolle Konstrukte. Rufen wir
die Funktion aufblenden14() auf, rufen wir mit einer Verzögerung
von 10 Millisekunden die Funktion weiterruecken auf. Wir tun
das mit
window.setTimeout("funktionsname()",Zahl in Millisekunden);
Das heisst, der erste Parameter, den die Funktion setTimeout()
erhält, ist die Funktion, die aufgerufen wird und der
zweite Parameter die Zeit in Millisekunden, nach der diese
Funktion aufgerufen wird. Ruft sich eine Funktion, wie in
diesem Beispiel, immer wieder selber auf, muss es eine Möglichkeit
geben, die Funktion auch irgendwann zu stoppen, sonst würde
sie ewig weiterlaufen. Hierfür übergeben wir den
Rückgabewert der Funktion an die Variable stop, die auch
stoppen, anhalten etc. heissen könnte. Wir lasse unsere
Funktion also nur solange laufen, wie aa kleiner oder gleich
200 ist. Ist 200 erreicht, beenden wir mit
clearTimeout(stop)
die Funktion. Die Größe eines Fensters verändern:
resizeTo()
Hierfür ist sogar eine sinnvolle Anwendung vorstellbar.
Hat man z.B. eine Bilderdatenbank und blendet die einzelnen
Bilder in Thumbnails auf, auf die man dann drückt und
das ganze Bild in einem schwebenden Fenster erhält, dann
wäre es nett, wenn das Fenster genauso gross wäre
wie das Bild. Man kann das auch anderes lösen, siehe
Gästebuch,
aber unter Umständen ist die Lösung mit resizeTo
sogar überzeugender. Wir zeigen den Ansatz anhand eines
vereinfachten Beipiels.
<script language="JavaScript">
function aufblenden15()
{
fenster2=window.open("","fenschterle",
'width=567,height=200,scrollbars=yes,top=10,left=10,status=yes');
window.setTimeout("grossmachen()",5000);
}
function grossmachen()
{
fenster2.resizeTo(500,500);
fenster2.focus();
}
</script>
<A href=beispiele/aufblend4.htm
onClick=aufblenden15() target=fenschterle>hier</A>
Das Fenster aufblenden: hier
clicken.
|
 |