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 */
Ausgabe-Test

Webdesign by: Dipl.-Math. Horst Liske, EDV-Beratung HolyWare©, E-Mail an Horst@holyware.de