# JavaScript/Altri oggetti del BOM

JavaScript
Copertina Tutti i moduli · Sviluppo
* IntroduzioneJavaScript/Introduzione
* Il nostro primo programmaJavaScript/Il nostro primo programma
* Tipi di dati e variabiliJavaScript/Tipi di dati e variabili
* Operatori e castingJavaScript/Operatori e casting
* Le strutture di controllo
** SelezioneJavaScript/Selezione
** IterazioneJavaScript/Iterazione
* Funzioni definite dall'utenteJavaScript/Funzioni definite dall'utente
* Programmazione ad oggettiJavaScript/Oggetti
** Oggetto StringJavaScript/Oggetto String
** Oggetto MathJavaScript/Oggetto Math
** Oggetto DateJavaScript/Oggetto Date
** Oggetto ArrayJavaScript/Oggetto Array
* CookieJavaScript/Cookie
* TimerJavaScript/Timer
* L'oggetto windowJavaScript/BOM
** Gli eventi nel BOMJavaScript/Gli eventi nel BOM
** Oggetto documentJavaScript/Oggetto document
** Altri oggetti del BOMJavaScript/Altri oggetti del BOM
* Il Document Object ModelJavaScript/DOM
** Proprietà e metodiJavaScript/Proprietà e metodi del DOM
** Gli eventi nel DOMJavaScript/Gli eventi nel DOM
* Espressioni regolariJavaScript/Espressioni regolari
* AJAX
** Introduzione ad AJAXJavaScript/Introduzione ad AJAX
** Usare AJAXJavaScript/Usare AJAX
* Costruttori e prototipiJavaScript/Costruttori e prototipi
* AppendiceJavaScript/Appendice
* CreditiJavaScript/Crediti
Modifica il sommario
Oltre all'oggetto document, l'oggetto window dispone di altre proprietà che restituiscono oggetti particolarmente utili.

## location

Questo oggetto restituisce informazioni relative all'indirizzo della pagina caricata.
Le sue proprietà sono le stesse che per l'oggetto link trattato nel modulo precedente Dispone inoltre di due interessanti metodi:
* reload: ricarica la pagina
* replace: carica l'URL indicata come parametro sostituendola in cronologia alla voce corrente. Usando invece location.href = url vengono salvate entrambe le pagine in cronologia.

## history

permette di accedere alla cronologia delle pagine visitate dall'utente. Dispone di una sola proprietà length che restituisce il numero di pagine nella cronologia. Dispone poi dei metodi:
* go: carica la pagina nella posizione indicata rispetto alla pagina corrente; ad esempio:
* back e forward: caricano la pagina precedente e successiva (corrispondono a history.go(-1) e history.go(1))
Spesso l'oggetto history è usato in associazione agli eventi della pagina per creare bottoni "indietro":

## navigator

Questo oggetto consente di ottenere informazioni riguardo al browser in uso dall'utente e al suo sistema operativo. Possiede interessanti proprietà:
* appName è una stringa che restituisce il nome del browser (Opera, Netscape - valore restituito anche da Firefox -, Microsoft Internet Explorer...).
* appVersion contiene dati sul browser, quali la versione della release e il sistema operativo sul quale sta girando.
* plugins restituisce un array dei plugin installati.
Tramite la prima proprietà, possiamo verificare il browser in uso per agire in modo diverso ed eliminare così alcuni problemi di compatibilità:
Normalmente è possibile omettere i controlli per browser quali Opera, che normalmente mantengono una grande compatibilità con Firefox, in quanto entrambi seguono le stesse convenzioni del W3C; spesso il problema è trovare una soluzione compatibile anche con IE. Attenzione: navigator.appName e navigator.appVersion sono deprecati. Non fare affidamento su appName perché in molti browser ritorna come valore 'Netscape'.

## screen

Questo oggetto permette di ottenere informazioni sullo schermo dell'utente e sulla sua configurazione. Tra le sue proprietà ricordiamo:
* height e width che indicano la risoluzione verticale e orizzontale dello schermo in pixel
* colorDepth (profondità del colore) indica il numero di bit utilizzati per i colori (ad esempio, 2 indica che l'utente sta navigando con uno schermo in bianco e nero - fatto altamente improbabile, perché ormai la maggior parte dei monitor supportano la configurazione 16 o 32 bit).