Das BOM in JavaScript mit Firefox 38 (Das BOM in JavaScript mit Firefox 38), Lektion, Seite 723161
https://www.purl.org/stefan_ram/pub/bom_javascript (Permalink) ist die kanonische URI dieser Seite.
Stefan Ram
JavaScript-Kurs

Das Verzeichnis »this.window« (das BOM ) in JavaScript  mit Firefox 38 

Einige Möglichkeiten stehen erst zur Verfügung, wenn im Browser auch tatsächlich eine Web -Seite angezeigt wird. Dafür kann ein HTML-Dokument in den Browser geladen werden. Wie dies geht, wurde schon im Kurs behandelt.

Das Verzeichnis »this.window« enthält Informationen über das Browserfenster , zu dem eine Auswertung eines JavaScript -Ausdrucks gehört. (Jeder Auswertung im Browser wird ein Browserfenster zugeordnet.)

Das “BOM ” ist das “browser object model ”, was auf deutsch soviel bedeutet wie „Darstellung einiger Browser-Informationen mit Verzeichnissen“. Es kann in JavaScript  normalerweise durch den Ausdruck »this.window« notiert werden.

Objektmodelle

Die Darstellung von Informationen unter Verwendung von Verzeichnissen und ihren Einträgen wird auch als ein Objektmodell  bezeichnet.

Beispielsweise stellen wir uns vor, daß die Kreiszahl ‹ π › zur Mathematik gehört.

Diese Auffassung können wir nun mit Verzeichnissen nachbilden („modellieren“), indem wir dafür sorgen, daß die Konstante »PI« sich in einem Verzeichnis ›Math‹ befindet. – Dabei repräsentiert dieses Verzeichnis die Mathematik und der Bezeichner »PI« steht für die Kreiszahl ‹ π ›. Die Tatsache, daß der Bezeichner »PI« sich (als Schlüssel) im Verzeichnis ›Math‹ befindet, drückt dann aus, daß die Kreiszahl ‹ π › für uns zur Mathematik gehört.

»this.window.location.href«

Die Adresse des im Fenster dargestellten Inhalts findet man im BOM  unter »this.window.location.href«.

Auswertung
this.window.location.href
"about:blank"

Die Ausgabe kann auch anders lauten als hier gezeigt, wenn ein Dokument aus einer bestimmten Quelle geladen wurde. Falls Fehlermeldungen auftreten oder nur »undefined« angezeigt wird, könnte es sogar nötig sein, vor der Auswertung dieses Ausdrucks erst einmal ein Dokument aus einer Datei oder dem Web zu laden.

»this.window.navigator.userAgent«

Die Kennung des Browsers, mit welcher er sich bei einem Web-Server identifiziert, wird mit »this.window.location.href« ausgedrückt.

Auswertung
this.window.navigator.userAgent
"Mozilla/5.0 (Windows NT 6.1; rv:38.0) Gecko/20100101 Firefox/38.0"

(Es wird empfohlen, den Bezeichnernamen »userAgent« in neu geschriebenen Programmen nicht mehr zu verwenden, da er abgekündigt wurde. Dennoch ist er als ein Lehrbeispiel hier geeignet, weil sein Bedeutung einfach verständlich ist.)

»this.window.screen«

Das Verzeichnis »this.window.screen« enthält verschiedene Informationen über den Bildschirm, auf dem das Browser-Fenster angezeigt wird.

Das folgende Beispiel zeigt die Ausgabe der Breite und Höhe des Bildschirms in Pixeln.

Auswertung
window.screen.width
1366
window.screen.height
768

(Der Wert dieser beiden Einträge kann durch die Zoom-Einstellung des Betriebssystems oder des Browsers so beeinflußt, daß sich andere Werte als die Bildschirmgröße in Pixel des Betriebssystems ergeben, weil der Browser dann entsprechend skalierte Pixel als Einheit verwendet.)

Die Globalität des window-Verzeichnisses

Alle Einträge des window-Verzeichnisses sind in der Regel auch ohne die Qualifikation mit »window« erreichbar.

Auswertung
window.screen.width
1366
screen.width
1366

Es kann sein, daß jemand für bestimmten Programmteile versehentlich Namen wie »screen« oder »window« umdefiniert. Da es aber unwahrscheinlicher ist, daß jemand den bekannten Namen »window« versehentlich umdefiniert, ist es sicherer, »window.screen« statt »screen« zu schreiben, weil dies von bestimmten Arten der Umdefinition des Namens »screen« nicht beeinflußt wird.

Innerhalb der Konsole ist das window-Verzeichnis auch unter dem Namen »this« erreichbar.

Auswertung
window.screen.width
1366
this.screen.width
1366

Normalerweise (direkt nach dem Start des Browsers in der Konsole) gilt »this« = »window«. Das globale Verzeichnis »this« und das window-Verzeichnis »window« kann in JavaScript  also normalerweise als »this« oder auch als »window« bezeichnet werden oder oft ganz weggelassen werden.

In Mozilla Firefox 38  erscheint beim Eintippen in der Konsole eine Auflistung der Einträge als Eingabehilfe, wenn man »windows.« eingetippt hat, nicht  jedoch, wenn man »this.« eingetippt hat. In Mozilla Firefox 48  erscheint die Eingabehilfe aber auch nach dem Tippen von »this.«.

Da »window« nur ein globaler Name ist, der im globalen Verzeichnis »this« eingetragen ist, ist es effizienter, gleich »this« zu verwenden, statt »window«. („Effizienter“ bedeutet, daß Programme so vermutlich schneller laufen.) Weil »this« ein eingebauter Teil der Programmiersprache ist, steht seine Bedeutung nämlich bereits fest, während der Wert von »window« immer wieder ermittelt werden muß. Obwohl es also effizienter ist »this.screen.width« zu schreiben, ist es hilfreich trotzdem zu wissen, daß »screen« als Eintrag in »window« angesehen wird. (Es ist nicht sicher, ob die Mutmaßungen dieses Absatzes zutreffen, im Zweifelfall muß man es mit der Stoppuhr nachmessen.)

Später werden wir Situationen kennenlernen, in denen »window« oder »this« auch eine andere Bedeutung haben kann. Es ist in JavaScript  leider etwas schwierig, einen Ausdruck anzugeben, dessen Wert immer  (egal an welcher Stelle man ihn verwendet) das globale Verzeichnis »this« oder das Fensterverzeichnis »window« ist.

Übersicht

In der folgenden Übersicht steht »this« für das globale Verzeichnis und »window« für das globale Verzeichnis in einem Web-Browser.

Übersicht der Namen

Name Art Bedeutung

this.Infinity Zahl Unendlich
this.Math.PI Zahl die Kreiszahl Pi

window.location.href Text aktuelle Adresse
window.navigator.userAgent Text Browser-Bezeichnung
window.screen.height Zahl Bildschirmhoehe
window.screen.width Zahl Bildschirmbreite

Seiteninformationen und Impressum   |   Mitteilungsformular  |   "ram@zedat.fu-berlin.de" (ohne die Anführungszeichen) ist die Netzpostadresse von Stefan Ram.   |   Eine Verbindung zur Stefan-Ram-Startseite befindet sich oben auf dieser Seite hinter dem Text "Stefan Ram".)  |   Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram. Schlüsselwörter zu dieser Seite/relevant keywords describing this page: Stefan Ram Berlin slrprd slrprd stefanramberlin spellched stefanram723161 stefan_ram:723161 Das BOM in JavaScript mit Firefox 38 Stefan Ram, Berlin, and, or, near, uni, online, slrprd, slrprdqxx, slrprddoc, slrprd723161, slrprddef723161, PbclevtugFgrsnaEnz Erklärung, Beschreibung, Info, Information, Hinweis,

Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram.
https://www.purl.org/stefan_ram/pub/bom_javascript