Javascript-Funktionen
Aufgabe 4
Die Abfrage der Fenstereigenschaften (siehe Aufgabe
3) liefert unterschiedliche Ergebnisse je nach verwendetem Browser.
Der Test, ob diese Eigenschaften verfügbar sind und die entsprechende
Ausgabe, kann als bedingte Zuweisung erfolgen.
Die nachstehende Anweisung:
Variable=(Bedingung)?(Ergebnis_falls_Bedingung_erfüllt_ist):(Ergebnis_falls_Bedingung_nicht_erfüllt_ist);
entspricht der folgenden if-Anweisung:
if (Bedingung) {Variable=Ergebnis_falls_Bedingung_erfüllt_ist;}
else {Variable=Ergebnis_falls_Bedingung_erfüllt_nicht_ist;}
In der Aufgabe 3 wurde z.B. folgende Ausgabeanweisung
verwendet:
document.write("<td>"+((window.outerHeight)?window.outerHeight+'
Pixel':'Keine Angaben verfügbar')+"</td>");
in der die Fenstereigenschaft window.outerHeight getestet und
eine entsprechende Ausgabe durchgeführt wird.
Es ist nun eine Funktion abfrage zu schreiben, welche
die Prüfung der abzufragenden Eigenschaft übernimmt. Sie soll
entweder den Wert der gewünschten Eigenschaft liefern oder die Zeichenkette:
'Keine
Angaben verfügbar'.
Lösung:
function abfrage(w){return (w)?(w):('Keine Angaben verfügbar');}
Zur Anzeige der Eigenschaften von Fensterleisten wurde z.B. folgende
Ausgabeanweisung verwendet:
(window.locationbar)?("Anzeige der Adressleiste ist"+((window.locationbar.visible)?"
nicht":"")+" unterdrückt"):"Keine Angaben verfügbar");
in welcher zuerst getestet wird, ob das Objekt window.locationbar
überhaupt
existiert (der MS-IE kennt dieses Objekt nicht!). Anschließend wird
dann getestet, ob dieses Objekt sichtbar ist.
Es ist nun eine Funktion leiste zu schreiben, welche die
Prüfung der abzufragenden Eigenschaft übernimmt. Sie soll entweder
die Zeichenkette 'Anzeige ist nicht unterdrückt' oder 'Anzeige
ist unterdrückt' oder 'Keine Angaben verfügbar' liefern.
Lösung:
function leiste(f){return (f)?('Anzeige ist '+((f.visible)?('nicht
'):(''))+'unterdrückt'):('Keine Angaben verfügbar');}
Schreiben Sie nun die Anzeige der Fenstereigenschaften neu:
document.write("<center><table border=1>"); /* Tabellenbeginn
*/
document.write("<tr>"); /* Zeilenbeginn */
document.write("<td colspan=2 align=center>"+fett("Angaben zur
verwendeten Browsersoftware")+"</td>");neuezeile();
zelle(fett("Merkmal")); zelle(fett("aktueller Wert"));neuezeile();
zelle(kursiv("Spitzname")); zelle(navigator.appCodeName);neuezeile();
zelle(kursiv("Browsername"));zelle(navigator.appName);neuezeile();
zelle(kursiv("Browserversion"));zelle(navigator.appVersion);neuezeile();
zelle(kursiv("Sprachvariante"));zelle(abfrage(navigator.language));neuezeile();
zelle(kursiv("Betriebssystem"));zelle(navigator.platform);neuezeile();
document.write("<td colspan=2 align=center>"+fett("aktuelle
Fenstereinstellungen")+"</td>");neuezeile();
zelle(kursiv("innere Fensterhöhe"));zelle(abfrage(window.innerHeight));neuezeile();
zelle(kursiv("innere Fensterbreite"));zelle(abfrage(window.innerWidth));neuezeile();
zelle(kursiv("äußere Fensterhöhe"));zelle(abfrage(window.outerHeight));neuezeile();
zelle(kursiv("äußere Fensterbreite"));zelle(abfrage(window.outerWidth));neuezeile();
zelle(kursiv("Inhalt der Statusleiste"));zelle(abfrage(window.status));neuezeile();
zelle(kursiv("Standardtext in der Statusleiste"));zelle(window.defaultStatus);neuezeile();
zelle(kursiv("Adressleiste"));zelle(leiste(window.locationbar));neuezeile();
zelle(kursiv("Menüleiste"));zelle(leiste(window.menubar));neuezeile();
zelle(kursiv("pers. Adressleiste"));zelle(leiste(window.personalbar));neuezeile();
zelle(kursiv("Bildlaufleisten"));zelle(leiste(window.scrollbars));neuezeile();
zelle(kursiv("Statusleiste"));zelle(leiste(window.statusbar));neuezeile();
zelle(kursiv("Navigationsleiste"));zelle(leiste(window.toolbar));neuezeile();
zelle(kursiv("Bildschirmhöhe"));zelle(screen.height+" Pixel");neuezeile();
zelle(kursiv("Bildschirmbreite"));zelle(screen.width+" Pixel");neuezeile();
zelle(kursiv("verfügbare Bildschirmhöhe"));zelle(screen.availHeight+"
Pixel");neuezeile();
zelle(kursiv("verfügbare Bildschirmbreite"));zelle(screen.availWidth+"
Pixel");neuezeile();
zelle(kursiv("Farbtiefe"));zelle(abfrage(screen.colorDepth));neuezeile();
zelle(kursiv("Farbauflösung"));zelle(abfrage(screen.pixelDepth));
document.write("</tr></table></center>"); /* Tabellenende
*/
Webdesign by: Dipl.-Math. Horst Liske,
EDV-Beratung
HolyWare©,
E-Mail
an Horst@holyware.de