JavaScript/Altri oggetti del BOM
Oltre all'oggetto document, l'oggetto window dispone di altre proprietà che restituiscono oggetti particolarmente utili.
location
[modifica | modifica sorgente]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 | modifica sorgente]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)
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
[modifica | modifica sorgente]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 | modifica sorgente]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).