JavaScript/Altri oggetti del BOM

Wikibooks, manuali e libri di testo liberi.
Jump to navigation Jump to search

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>

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

screen[modifica]

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