JavaScript/Altri oggetti del BOM

Indice del libro

Oltre all'oggetto document, l'oggetto window dispone di altre proprietà che restituiscono oggetti particolarmente utili.

location

modifica

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

modifica

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:
history.go(-2); //carica la seconda pagina caricata prima di quella corrente
history.go(3); //come premere 3 volte il pulsante "avanti" del browser
  • 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":

<a href="#" onclick="history.back(); return false;">&lt;&lt; Indietro</a>
modifica

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à:

var ns = ( navigator.appName.indexOf("Netscape") > -1 ) //se l'utente naviga con Firefox/Netscape, contiene true
var mie = ( navigator.appName.indexOf("Microsoft") > -1 ) //microsoft internet explorer
var wie = ( navigator.appName.indexOf("Windows") > -1 ) //windows internet explorer
var opera = ( navigator.appName.indexOf("Opera") > -1 ) 
//etc...

if (ns) {
 //codice per netscape/firefox
}
else if (mie || wie) {
 //codice per ie
} else if (opera) {
 //codice per opera
} else {
 //codice per altri browser
}

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'.

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).