JavaScript/Altri oggetti del BOM
Oltre all'oggetto document, l'oggetto window dispone di altre proprietà che restituiscono oggetti particolarmente utili.
location
modificaQuesto 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
modificapermette 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)
ehistory.go(1)
)
Spesso l'oggetto history è usato in associazione agli eventi della pagina per creare bottoni "indietro":
<a href="#" onclick="history.back(); return false;"><< Indietro</a>
navigator
modificaQuesto 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
modificaQuesto 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).