Introduzione al linguaggio Javascript

Transcript

Introduzione al linguaggio Javascript
Appunti a cura del Prof. G.Tombolini
La programmazione Web – Linguaggio JavaScript
La programmazione Web
6-Linguaggio JavaScript
6) Sommario
0. Introduzione
1. Tag <Script>
Il tag HTML per l'inserimento di script all'interno di pagine Web
2. Richiamo degli script
Due modi per inserire script nella pagina: richiamo da un file esterno o direttamente nel documento
3. Browser non compatibili
Il tag <NOSCRIPT> per browser non compatibili con Javascript
4. Il linguaggio
Commenti e punteggiatura, Istruzioni, Dati
5. Oggetti predefiniti
String, Math e Date
6. DOM (Documento Object Model)
Modello ad oggetti del documento
7. Gli eventi
Gli eventi sono utilizzati per richiamare delle istruzioni.
8. Elementi specifici
Proprietà principali di elementi specifici.
9. L’oggetto Form
Gli elementi dei moduli.
10. I Cookie
Gestione dei cookie.
6.0) Introduzione
JavaScript è un linguaggio di programmazione interpretato e leggero, che dispone di funzionalità orientate agli oggetti.
Il nucleo del linguaggio è stato incorporato all'interno del browser. Esso permette di accedere agli oggetti
rappresentativi della finestra di navigazione e del suo contenuto. Esistono tre varianti JavaScript: Lato client, lato server
ed embedded. Quando si parla di JavaScript generalmente si ci riferisce alla variante lato client che è quella più
comune. La versione di JavaScript lato client permette l'inserimento di contenuti eseguibili all'interno di pagine Web;
così le pagine Web non sono più pagine HTML statiche, ma possono comprendere programmi che interagiscono con
l'utente, controllando il browser e creando dinamicamente nuovi contenuti HTML. Sintatticamente JavaScript somiglia
al linguaggio C, C ++ e Java.
6.1) Tag SCRIPT
I browser ricevono le pagine HTML con tutto il contenuto, quando si incontra il tag <SCRIPT> questo viene eseguito
(dal browser lato client) come tutti gli altri tag, dall'alto in basso, ma il suo contenuto è interpretato secondo un codice
diverso. Il formato del tag <SCRIPT> è:
<SCRIPT Language="Javascript"><!-//--></SCRIPT>
6.2) Richiamo degli script
In linea di principio uno script può essere inserito in due modi all'interno di pagina HTML :
• inserendo il codice nel documento;
• caricandolo da un file esterno.
l'uso del file esterno, infatti, è dettato dal limite di dimensione di 32K che deve rispettare una pagina web.
Script esterni
In quest'ultimo caso (è anche quello più semplice a spiegarsi) lo script è salvato in un file con estensione .js. Viene
richiamato con l'attributo SRC del tag SCRIPT:
1
Appunti a cura del Prof. G.Tombolini
La programmazione Web – Linguaggio JavaScript
<SCRIPT Language=”Javascript” SRC="nomefile.js">
<!-//-->
</SCRIPT>
Script interni
Se lo script è all'interno del documento, può essere immesso sia nella sezione di intestazione (tra i tag
<HEAD></HEAD>) sia in quella del corpo del documento (tra i tag <BODY></BODY>). Occorre tener presente che
la pagina HTML viene eseguita in ordine sequenziale: dall'alto in basso, per cui la differenza tra le due alternative
esiste: lo script dell'intestazione viene caricato prima degli altri, quello nella sezione body, invece, viene eseguito
secondo l'ordine di caricamento. Bisogna considerare che una variabile o qualsiasi altro elemento di Javascript può
essere richiamato solo se caricato in memoria: tutto ciò che si trova nell'intestazione è quindi visibile agli altri script,
quello che si trova nella sezione BODY è visibile agli script che lo seguono.
ESEMPIO N.1
<HTML>
<HEAD>
<SCRIPT Language="Javascript"> x=1;alert('TESTA='+x); </SCRIPT>
</HEAD>
<BODY>
<SCRIPT Language="Javascript"> x++;alert('CORPO='+x); </SCRIPT>
<SCRIPT Language="Javascript"> x++;alert('CORPO='+x); </SCRIPT>
</BODY>
</HTML>
Esecuzione degli script
Le istruzioni in Javascript possono essere eseguite in diverso modo:
• all'interno degli script, individuati dai tag <SCRIPT>, in maniera sequenziale, per cui l'esecuzione è
automatica;
• caricandoli da file esterni;
• in seguito all'attivazione di un evento (handler) come un click del mouse o la pressione di un tasto;
• in luogo di un nella forma: <A HREF="Javascript:comando">
Esempio
<HTML><HEAD></HEAD>
<BODY>
<SCRIPT Language="Javascript"><!-alert('Script');
//--></SCRIPT>
<a href="#" onmouseover="alert('Hai passato il mouse')">Passa il mouse</a>
<a href="javascript:alert('Hai cliccato')">Clicca qui</a>
</BODY></HTML>
6.3) Browser non compatibili
Potrebbero essere utilizzati anche browser non compatibili con Javascript oppure quelli in cui Javascript è disabilitato.
In questo caso ci viene in aiuto il tag <NOSCRIPT></NOSCRIPT> che può contenere testo e grafica alternativi oppure
un reindirizzamento in pagine statiche, che non usano Javascript, mediante la sequenza:
<NOSCRIPT>
<META HTTP-EQUIV REFRESH CONTENT="0; URL=altrapagina.htm">
</NOSCRIPT>
6.4) Il linguaggio
Javascript è un linguaggio interpretato, l’interprete è incorporato nel browser. E’ un linguaggio orientato agli oggetti.
Un oggetto è formato da un insieme di variabili che costituiscono le proprietà dell’oggetto e di funzioni che
costituiscono i metodi.
Commenti e punteggiatura
I commenti sono racchiusi tra barre e asterischi come nell'esempio sotto riportato:
/*commento*/
e può essere posto su più righe o su una riga singola. Un altro tipo di commento è la doppia barra( // ), presa a prestito
dal linguaggio C, ma è valida solo per commenti posti su una singola riga, anche se non la occupano per intero:
int x: //commento
E’ ammesso l’uso del commento HTML per racchiudere tutti gli script nei tag di commento, facendoli aprire dopo il tag
di script e chiudere prima della chiusura del tag:
<script language="JavaScript">
<!-2
Appunti a cura del Prof. G.Tombolini
La programmazione Web – Linguaggio JavaScript
alert("Welcome!");
//-->
</script>
in tal modo si maschera il codice javascript ai vecchi browser che non lo leggono.
Spazi bianchi
Javascript non bada agli spazi bianchi, tranne che per quelli che si trovano nelle stringhe, per cui si possono omettere o
anche aumentare. Il loro uso, tuttavia, con l'identazione aumenta la leggibilità del programma per cui sono vivamente
consigliati.
Apici
Importanti sono gli apici, sia singoli (' ') che doppi (" ").
I doppi apici si adoperano per racchiudere parti di codice Javascript, e, insieme a quelli singoli, a racchiudere anche le
stringhe (sequenze di caratteri), per cui occorre fare attenzione ad annidare due stringhe racchiuse da apici simili, come
ad utilizzare i doppi apici per le stringhe se questi già servono a racchiudere codice Javascript.
Se si desidera che in una stringa appaiano apici doppi o singoli come parte integrante della stringa stessa, si fanno
precedere da una barra rovesciata (\).
Istruzioni
Le istruzioni hanno la responsabilità di controllare il flusso di elaborazione del codice. Esse possono:
• eseguire iterazioni, cioè ripetere una parte di codice per un certo numero di volte;
• eseguire decisioni condizionate;
• richiamare funzioni (si vedrà in seguito cosa sono);
• consentire al percorso dell'esecuzione di essere modificato dinamicamente.
In Javascript ogni istruzione inizia ad ogni nuova riga o con il punto e virgola.
Blocchi di istruzioni
Un'istruzione composta, invece, è formata da un gruppo di due o più istruzioni che formano un gruppo logico, nel senso
che l'esecuzione delle stesse è legata, ad esempio, al verificarsi di una condizione: tali istruzioni sono raggruppate in
blocchi individuati dalle parentesi graffe.
Dati
Sono ammessi dati di tipo stringa come sequenze di caratteri racchiusi tra virgolette o apici. Nelle stringhe si possono
inserire caratteri speciali facendoli precedere dalla barra rovesciata \ (escape). I caratteri sono in Unicode. Le stringhe
sono oggetti della classe string.
Non è obbligatorio dichiarare le variabili; esse verranno instanziate al momento dell’uso. Esse sono di tipo variant. Per
dichiarare una variabile si usa:
var nome[=valore];
è ammessa l’assegnazione multipla: j=k=i=0;
Le variabili definite negli script sono globali. Esistono tipi di dati primitivi (numeri o boolean), tipi riferimento (oggetti)
e stringhe. Gli array sono tipi speciali di oggetti. Si può determinare il tipo di una variabile usando l’operatore typeof
che restituisce il tipo (number, string, boolean, function, object o undefined).
Tipi primitivi
I numeri possono essere interi o reali. I valori booleani sono true (1) o false (0). Alcune conversioni di tipo sono
effettuate automaticamente : da interi a stringhe, da stringhe a valori booleani, da numeri a booleani.
Altre conversioni sono esplicite:
parseInt(s) da stringa a numero
parseFloat(s) da stringa a float
String(n) o toString() da numero a stringa s=string(n) o s=n.toString()
La funzione eval è abbastanza complessa e cerca qualsiasi espressione Javascript valida per trasformarla in numerico:
x=10; y=20; z=30; eval("x+y+z+900")=960
Un numero intero Può essere fornito in tre varianti: decimale, esadecimale e ottale secondo la base con cui viene
rappresentato. Per rappresentare un ottale lo si fa precedere da uno 0, per rappresentare un esadecimale lo
si fa precedere da 0x.
Il valore nullo si ha quando le variabili sono indefinite, cioè quando non vi si assegna nessun valore all'atto della
dichiarazione.
Importante è sottolineare che ad una variabile può essere assegnato anche un oggetto e si può anche creare un oggetto
generico tramite l'enunciato:
nomeoggetto=new Object();
Operatori
Sono gli stessi del linguaggio C (+, -, *, /, % , +=, -=, *=, /=, %=, ++ --) .
3
Appunti a cura del Prof. G.Tombolini
La programmazione Web – Linguaggio JavaScript
Per concatenare stringhe occorre l’operatore +.
Anche nei confronti si hanno gli stessi operatori del linguaggio C (==,!=, <, >, <=, >=, &&, ||, ! ).
Operatori sui bit (&, |, ^, ~, <<, >>)
Operatore ternario ? ( esempio max = k > j ? k : j; )
Scope
Le variabili si distinguono in variabili globali e variabili locali.
1. le variabili globali hanno valore per tutto il documento HTML e vanno dichiarate all'inizio dello script e fuori da
ogni funzione: il posto preferibile è nei tag <SCRIPT> della sezione <HEAD> in modo tale da creare i contenitori
dei valori prima di ogni loro utilizzo;
2. le variabili locali hanno valore solo all'interno della funzione in cui sono dichiarate, cioè all'interno del blocco di
codice compreso tra function(){ e la chiusura della parentesi } e vanno dichiarate entro questi blocchi.
Da ciò si ricava che le variabili dichiarate all'interno di parentesi graffe possono essere utilizzate solo in quel
blocco perchè sono variabili locali.
Parole chiave
In Javascript ci sono delle parole chiave che non si possono utilizzare come identificatori di dati, eccone l'elenco:
abstract
do
if
package throw
catch
final
int
short
var*
boolean
double implements private
break
else
import
byte
extends
in
case
false
instanceof
default
throws
char
protected transient
public
true
finally interface
static
void
class
float
long
super
while
const*
for
native
switch
with
return
try
continue function new
goto
null
this
synchronized
Espressioni al volo
Le espressioni possono essere calcolate anche all'interno di tag HTML permettendo di costruire valori "al volo": la
sintassi è:
&{espressione};
un esempio é:
<script>
<!-var tabWidth=50;
//-->
</script>
<table width="&{tabWidth};%">
Istruzioni condizionali
if(espressione) istruzione
[else istruzione]...
switch (espressione) {
case costante1: istruzioni
break;
case costante 2: istruzioni
break;
....
default istruzioni
}
Espressione1 ? Espressione2 :Espressione3
Un esempio molto elegante di operatore ternario è quello che serve a determinare il browser utilizzato:
ie=document.all?1:0
n=document.layers?1:0
Explorer sa interpretare il comando document.all, Netscape sa interpretare document.layers e non viceversa per cui se il
browser interpreta il comando allora sarà la variabile ie oppure n uguale ad 1.
Istruzioni di iterazione
for (inizializzazione; condizione; incremento) istruzione;
Un altro tipo di ciclo è for...in che lavora con le proprietà di un oggetto.
for (indice in oggetto) {istruzioni}
Tale funzione è utilizzata per analizzare le proprietà di un oggetto indicato. E' un'istruzione un po' complessa ma
utilissima per conoscere il valore che in un certo momento posseggono le proprietà di un oggetto.
4
Appunti a cura del Prof. G.Tombolini
La programmazione Web – Linguaggio JavaScript
for (i in navigator){
document.write("Proprieta\' :"+i);
document.writeln (" valore: ": +navigator[i]);
}
while (condizione) espressione
che esegue l'espressione finchè la condizione è vera. Per creare un ciclo infinito può andare molto bene l'istruzione:
while (true) {...}
do {istruzioni} while (condizione)
I comandi break e continue servono ad ottimizzare i cicli for e while oltre che all'operatore condizionale if.
Il comando break, infatti, interrompe un blocco di istruzioni saltando alla prima istruzione seguente il blocco
contenente il break.
Il comando continue, invece, indica di continuare il blocco ma interrompendo l'iterazione in quel punto e riprendendo
dall'inizio del blocco.
Array
Gli array sono liste numerate di oggetti, che in Javascript possono anche essere di tipo diverso. Javascript non supporta
le matrici come variabili, ma come oggetti per cui si crea una matrice solo se si dichiara e tale dichiarazione va fatta
come istanza dell'oggetto Array:
nomematrice=new Array(num elementi)
Per accedere ad un elemento della matrice si utilizza l'indice che indica la posizione dell'elemento all'interno della
stessa. Tale posizione si inizia a conteggiare da 0 e non da 1.
Esempio di dichiarazione:
GiornSett = new Array(7)
Per accedere ad ogni singolo elemento:
GiornSett[0] = "Domenica"
GiornSett[1] = "Lunedì"
GiornSett[2] = "Martedì"
GiornSett[3] = "Mercoledì"
GiornSett[4] = "Giovedì"
GiornSett[5] = "Venerdì"
GiornSett[6] = "Sabato"
per cui il primo elemento è "Domenica" ed ha indice 0.
La seguente sintassi dichiara e assegna i valori agli elementi della matrice:
GiornSett = new Array("Domenica","Lunedì","Martedì","Mercoledì","Giovedì","Venerdì","Sabato")
In Javascript gli array sono array associativi, cioè permettono di usare delle stringhe come indici (o leggi di accesso).
Per accedere agli elementi si usa l’operatore [ ] o . :
riga[“nome”] o anche riga.nome
La proprietà più importante dell’oggetto array è length che fornisce il numero di elementi dell’array.
Quando si è definita una matrice, i suoi elementi vengono riempiti con valore null, per la lunghezza specificata nella
dichiarazione. È possibile modificare la dimensione di una matrice in modo dinamico, assegnando un valore alla
proprietà LENGTH.
Le matrici hanno tre metodi:
• Join( ) Unisce tutti gli elementi di una matrice, dando come risultato una stringa.
• Reverse ( ) Restituisce una versione capovolta della matrice.
• Sort ( ) Restituisce una versione ordinata della matrice.
• toString( ) Converte tutti gli elementi di una matrice in una stringa, separandoli con virgole.
Funzioni
Le funzioni sono oggetti Function che hanno proprietà e metodi. Si può dichiarare una funzione, come in C, con:
function(){
//istruzioni
}
e si richiama con
function();
Il passaggio di parametri avviene per valore. La funzione può restituire un valore con
return espressione
L’oggetto Function ha due metodi interessanti che permettono di avere funzioni con numero di parametri variabile:
arguments
è un array contenente i parametri passati alla funzione (length indica quanti ne sono)
caller
riferimento alla funzione chiamante (null se il rimo livello)
5
Appunti a cura del Prof. G.Tombolini
La programmazione Web – Linguaggio JavaScript
6.5) Oggetti predefiniti
Oggetto String: le stringhe di caratteri sono oggetti string.
Proprietà: Length lunghezza della stringa in numero dei caratteri.
Metodi:
charAt(i)
restituisce il carattere che si trova nella posizione i.
concat(s)
concatena la stringa specificata alla fine
indexOf(s)
restituisce la prima posizione della stringa dove inizia la stringa specificata
lastindexOf(s) restituisce l’ultima posizione della stringa dove inizia la stringa specificata
replace(s1,s2) sostituisce la prima stringa con la seconda
search(s)
restituisce true se la stringa è presente, false altrimenti
split(s)
restituisce un array che contiene le parti della stringa separate dalla stringa specificata
substr(i)
restituisce la sottostringa che inizia dalla posizione i
substring(i,j)
restituisce la sottostringa che inizia dalla posizione i e termina alla posizione j
toLowerCase() trasforma in minuscolo
toUpperCase() trasforma in maiuscolo
Oggetto Math: offre metodi utili per calcoli matematici e alcune costanti
Proprietà: PI =pi greco, E=base dei logaritmi naturali
Metodi:
abs(a), exp(a), log(a), pow(a,b), sqrt(a), max(a,b), min(a,b), sin(a), cos(a), tan(a) di ovvio utilizzo
round(a)
numero intero più vicino ad a
ceil(a)
numero intero più piccolo >= a
floor(a)
numero intero più grande <=a
random()
numero casuale tra 0 e 1
esempio: n=Math,pow(5,2); // n vale 25
Oggetto Date: contiene informazioni riguardanti la data e l’ora di sistema lato client.
Costruttori: Date() : restituisce la data di sistema.
Metodi:
toLocaleString() trasforma la data nel formato locale in base alle impostazioni di sistema
getDate()
restituisce il giorno del mese
getMonth()
restituisce il mese (0-11)
getFullYear()
restituisce l’anno (4 cifre)
getHours()
restituisce l’ora
getMinutes()
restituisce i minuti
getSeconds()
restituisce i secondi
un esempio:
<SCRIPT LANGUAGE="JavaScript">
Mesi = new Array("Gennaio", "Febbraio", "Marzo", "Aprile", "Maggio", "Giugno",
"Luglio",
"Agosto", "Settembre", ”Ottobre", "Novembre", "Dicembre");
Data = new Date()
Giorno = Data.getDate()
Mese = Data.getMonth()
Anno = Data.getYear()
if (Anno < 2000) Anno = Anno + 1900;
Datario = Data.toGMTString()
GiorSet = Datario.substring(0,3)
if (GiorSet == "Sun") GiorSet = "Domenica"
if (GiorSet == "Mon") GiorSet = "Lunedì"
if (GiorSet == "Tue") GiorSet = "Martedì"
if (GiorSet == "Wed") GiorSet = "Mercoledì"
if (GiorSet == "Thu") GiorSet = "Giovedì"
if (GiorSet == "Fri") GiorSet = "Venerdì"
if (GiorSet == "Sat") GiorSet = "Sabato"
Ore = Data.getHours()
Minuti = Data.getMinutes()
Secondi = Data.getSeconds()
if ((Ore > 6) && (Ore < 13)) Saluto = "Buongiorno"
if ((Ore > 12) && (Ore < 18)) Saluto = "Buon pomeriggio"
if ((Ore > 17) && (Ore < 22)) Saluto = "Buona sera"
if (Ore > 21) Saluto = "Buona notte"
if (Ore < 7) Saluto = "Buona notte"
if (Minuti < 10) Minuti = "0" + Minuti
if (Secondi < 10) Secondi = "0" + Secondi
document.write("<font face = Elephant color=0xFF00AA size = 4><align=center>",
Saluto, ", sono le ore ",Ore, ":", Minuti, ".", Secondi," di ",GiorSet, ", ", Giorno, " ",
Mesi[Mese], " ",
Anno,"</font>")
6
Appunti a cura del Prof. G.Tombolini
La programmazione Web – Linguaggio JavaScript
</script>
6.6) Il DOM (Document Object Model)
La vita di Javascript lato client è strettamente legata al DOM (modello ad oggetti del documento). Lo scopo del DOM è
quello di fornire al programmatore una chiara interfaccia per controllare e modificare il contenuto, lo stile e la forma di
un documento html e di tutti i suoi elementi. L'oggetto principale del DOM è rappresentato dalla finestra corrente del
browser (oggetto window). Il modello di programmazione usato è quello basato su gli eventi. Si può fare in modo che
uno script venga eseguito quando si verifica un particolare evento. Si può fare riferimento ad ogni oggetto seguendo la
gerarchia; tutti gli oggetti sono accessibili come proprietà di altri oggetti.
Gerarchia degli oggetti:
window
Event
Frames[]
Location
History
Navigator
Screen
Document
All[]
Anchors[]
Applets[]
Body
Frames[]
Images[]
Links[]
Selection
Scripts[]
styleSheets[]
Forms[]
Elements[]
Rappresenta la finestra del browser
Rappresenta l'evento che si è verificato
Collezione dei premi se nella finestra corrente
Rappresenta l'url corrente che il browser sta visualizzando
Rappresenta l’history list del browser
Rappresenta il browser stesso
Rappresenta uno schermo
Rappresenta il documento correntemente visualizzato
Collezione di tutti gli elementi (tag) del documento
Collezione delle ancore
Collezione delle applet
Corpo del documento
Collezione dei frames definiti dal documento
Collezione delle immagini
Collezione dei link
Rappresenta il testo selezionato nel documento
Collezione di script
Collezione dei fogli stile
Collezione dei moduli
Collezione di elementi di un modulo
Oggetto Window:
è l'oggetto di primo livello della gerarchia; il suo nome può essere omesso dato che dovrebbe essere presente in tutti i
riferimenti.
Proprietà:
name
nome della finestra che può essere usato nell'attributo target di un collegamento ipertestuale; se il
nome specificato in target non esiste, viene creata una nuova finestra con questo nome.
Status
Contenuto corrente della barra di stato; permette di visualizzare messaggi
DefaultStatus
Non presenta il contenuto di default della barra di stato; può essere sostituito da altri messaggi ma poi
viene ripristinato
Self
Riferimento alla finestra corrente
Opener
Riferimento ad un altro oggetto Windows che ha aperto la finestra; se la finestra è stata aperta
dall'utente contiene null
Closed
ha valore true se la finestra chiusa
Metodi:
alert( )
Confirm()
Prompt()
Open()
Genera una finestra di dialogo con testo e pulsante OK; serve per visualizzare un messaggio
Genera una finestra di dialogo con testo e pulsante OK e Annulla; permette la scelta tra due alternative
Genera una finestra di dialogo con testo, e pulsante che è annulla e un campo di testo per inserire una
stringa
Gestione della finestra
Apre una nuova finestra del browser restituendo un oggetto Window che rappresenta la finestra aperta;
questa finestra può essere completamente controllata mediante parametri del metodo; ha 4 parametri
• l'url del documento da visualizzare (o finestra vuota se non specificato)
• il nome nella finestra che può essere utilizzato nell'attributo target dai collegamenti
• una stringa che specifica le caratteristiche della finestra:
o fullscreen (yes/no) indica se la finestra deve essere tutto schermo
7
Appunti a cura del Prof. G.Tombolini
La programmazione Web – Linguaggio JavaScript
o toolbar (yes/no) specifica se visualizzare della barra degli strumenti
o location (yes/no) specifica se visualizzare la barra indirizzo
o status (yes/no) specifica se visualizzare la barra di stato
o menubar (yes/no) specifica se visualizzare la barra dei menu
o scrollbars (yes/no) specifica se visualizzare le barre di scorrimento
o resizable (yes/no) specifica se la finestra è ridimensionabile
o width,height impostano le dimensioni della finestra in pixel
o top,left specificano la posizione del vertice superiore sinistro della finestra in pixel
• un valore booleano che indica se l'url indicato deve creare un nuovo elemento (false)
nell'elenco cronologico o sostituire quello corrente (true)
Close()
Chiude una finestra; si possono chiudere sono le finestre create dal proprio codice; la finestra chiusa
continua ad esistere (indicato dalla proprietà closed). Occorre quindi controllare sempre se le finestre
che si vogliono chiudere sono effettivamente aperte.
MoveTo(x,y)
Sposta la finestra alle coordinate specificate
MoveBy(x,y) Sposta la finestra del numero specificato di pixel
ResizeTo(x,y) Imposta le dimensioni della finestra ai valori specificati
ResizeBy(x,y) Modifica le dimensioni della finestra aggiungendo ai valori specificati positivi o negativi
ScrollTo(x,y) Sposta il documento della finestra alla posizione specificata (gli oggetti anchor hanno proprietà x e y
che possono essere usate per spostarsi direttamente su un’ancora
ScrollBy(x,y) Trascorrere il documento della finestra del numero di pixel specificato
Altri metodi
Focus()
Richiede il focus
Blur()
Cede il focus
ExecScript()
Esegue uno script
SetTimeout()
Esegue una funzione dopo che è trascorso un intervallo di tempo in millisecondi; ha due parametri di
primo e indica la funzione da eseguire, il secondo dopo quanti millisecondi viene eseguita; una
funzione in esecuzione può usarlo per ripetersi senza intervento da parte dell'utente; il metodo
restituisce un identificatore che va passato come parametro al metodo clearTimeout() per annullare il
richiamo della funzione
ClearTimeout() Annulla la chiamata alla fusione effettuata con setTimeout()
SetInterval()
Esegue ripetutamente una funzione con un ritardo specificato fra una esecuzione e l'altra; ha due
parametri: il primo indica la funzione eseguire, il secondo dopo quanti millisecondi viene eseguita; il
metodo restituisce un identificatore che va passato come parametro al metodo clearInterval() per
terminare la ripetizione
ClearInterval() Termina le chiamate ripetute alla funzione impostata con setInterval()
L’oggetto window contiene un discreto numero di oggetti (come si vede dalla gerarchia degli oggetti).
Oggetto Location:
La barra degli indirizzi era presentata da window.location: grande questo riferimento possibile interagire con essa.
Proprietà:
href
Contiene l'indirizzo mostrato dalla barra. È una proprietà di lettura e scrittura. L'assegnazione di un
valore a questa proprietà permette di spedire il visitatore alla pagina specificata
Protocol, host, Specificano le singole parti dell'Url. Search indica la parte dopo il punto di domanda
pathname,
search
Metodi:
replace()
Reload()
Sostituisce il documento corrente numero specificato; non si può più accedere al documento corrente
con il pulsante indietro
Aggiorna la pagina
Oggetto History:
Da la possibilità di muoversi lungo la cronologia. La proprietà length restituisce il numero di posizioni visitate
dall'utente.
Metodi:
back()
pulsante indietro del browser
Forward()
pulsanti avanti del browser)
go()
manda a una specifica posizione dell'elenco storico
A HREF="javascript:history.back();"><IMG BORDER = 0 SRC="Immagini/Freccia%20sinistra.gif" width="100" height="60">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</A><A HREF="history.forward();"><IMG BORDER = 0 SRC="Immagini/Freccia%20destra.gif" width="100" height="60"></A>
8
Appunti a cura del Prof. G.Tombolini
La programmazione Web – Linguaggio JavaScript
Oggetto Navigator:
fornisce informazioni relative al browser utilizzato
Proprietà:
appName
e Nome e versione del browser
appVersion
Platform
Piattaforma usata
Oggetto Screen:
fornisce informazioni sulla risoluzione e numero di colori dello schermo
Proprietà:
width e height
Risoluzione dello schermo in pixel
ColorDepth
Profondità di colore
Oggetto Document:
Insieme all'oggetto window, è sicuramente l'oggetto più importante del DOM. Esso permette di generare documenti o di
modificarne dinamicamente il contenuto e l'aspetto.
Metodi:
write(s)
Scrive nel documento il codice html specificato nella stringa. Richiamato in uno script, inserisce il
codice nel documento; se richiamato in un gestore di evento, crea un nuovo documento che
sostituisce il precedente.
Proprietà:
location o URL
title
referrer
lastModified
ESEMPIO
restituisce la URL del documento corrente
titolo del documento in corso
restituisce la URL del documento che l'utente visualizzava prima della pagina in corso
restituisce l'ultima data di modifica del documento
<SCRIPT LANGUAGE="JavaScript">
document.write("<p>Proprietà <b>location</b> restituisce la URL del documento corrente")
Doc = document.location
document.write("<br>___ Esempio: <u>",Doc,"</u>")
document.write("<p>Proprietà <b>title</b> visualizza un testo nella barra del titolo del documento in corso")
Doc = document.title
document.write("<br>___ Esempio: <u>",Doc,"</u> Testo prima della codifica JavaScript")
document.title = "Questo testo è scritto con Javascript"
Doc = document.title
document.write("<br>___ Esempio: <u>",Doc,"</u> Testo dopo la codifica JavaScript")
document.write("<p>Proprietà <b>referer</b> restituisce la URL del documento che l'utente visualizzava prima della pagina in corso (funzione non
attiva)")
Doc = document.referer
document.write("<br>___ Esempio: <u>",Doc,"</u>")
document.write("<p>Proprietà <b>lastModified</b> restituisce l'ultima data di modifica del documento")
Doc = document.lastModified
document.write("<br>___ Esempio: <u>",Doc,"</u>")
</script>
bgcolor
fgcolor
linkColor
vlinkColor
controlla il colore dello sfondo della pagina corrente.
controlla il colore del testo.
controlla il colore per i collegamenti non visitati
controlla il colore per i collegamenti visitati
parentWindow
Cookie
Riferimento aslla finestra che contiene il documento
Permette di leggere e scrivere cookie (si vedrà in seguito)
L’oggetto document contiene un discreto numero di collezioni/elementi (come si vede dalla gerarchia degli oggetti).
Tutti questi elementi sono a loro volta degli oggetti ed hanno delle proprietà. Alcune di queste proprietà sono comuni a
tutti gli oggetti (come ad esempio la proprietà id che serve ad assegnare un nome all’elemento, con il quale javascript
può accedervi per cambiare le relative proprietà). Le collezioni più comuni saranno trattate singolarmente (images,
links, anchors, forms). Una volta che si è avuto accesso al singolo elemento, è possibile accedere alle proprietà
(attributi) dello stesso per conoscerle e/o cambiarle. Più avanti si approfondirà questo argomento.
Proprietà comuni agli elementi del documento:
id
Nome dell’elemento (sola lettura)
tagName
Nome del tag html che ha creato l’elemento
Style
Permette di accedere alla proprietà di stile
Document
Riferimento al documento che contiene l’elemento
parentElement
Riferimento all’elemento genitore nella gerarchia
Sourceindex
Indice dell’elemento nella collezione document.all
Proprietà che permettono di modificare il contenuto degli elementi
innerText
Testo contenuto tra i tag dell’elemento
9
Appunti a cura del Prof. G.Tombolini
La programmazione Web – Linguaggio JavaScript
innerHtml
Testo contenuto tra i tag dell’elemento, può contenere tag html
outerText
Rappresenta tutto il testo dell’elemento, inclusi i tag
outerHtml
Rappresenta tutto il testo dell’elemento, inclusi i tag
Metodi comuni agli elementi del documento:
scrollIntoView() Fa scorrere il documento in modo che l’elemento compaia in cima alla finestra.
Un esempio di uso di alcune funzioni: EFFETTO TERREMOTO
<head>
<SCRIPT LANGUAGE="JavaScript">
function terremoto(x) {
brie4 = (navigator.appName == "Microsoft Internet Explorer") && (parseInt(navigator.appVersion) >= 4);
if (brie4) {
for (i = 12; i > 0; i--) {
for (j = x; j > 0; j--) {
self.moveBy(0,i);
self.moveBy(i,0);
self.moveBy(0,-i);
self.moveBy(-i,0);
}
}
}
else window.alert ("L'effetto terremoto non è visibile con questo tipo di browser")
}
</script>
</head>
<body>
<SCRIPT LANGUAGE="JavaScript">
document.write("<p>Questo effetto è visibile solo sui browser della Microsoft con versione superiore alla 3°")
document.write("<br>Il browser che stai utilizzando è ", navigator.appName)
document.write("<br>La versione di questo browser è ", navigator.appVersion.substring(0,4))
document.write("<h3 align=center>")
Timer = 4
Scosse = 1
Intensit = 2
ID = setTimeout("Aggiorn();",1000);
function Aggiorn() {
Timer = Timer - 1
if (Timer > -1) {
ID = setTimeout("Aggiorn();",1000);
}
else {
ID = setTimeout("Tempo();",100);
terremoto(Intensit)
}
if ((Timer > -1) && (Scosse == 1)) document.all.clock.innerHTML = "Mancano <h1>" + Timer + " secondi <h3> al terremoto
nel browser";
if ((Timer > -1) && (Scosse > 1)) document.all.clock.innerHTML = "Alla " + Scosse + "° scossa mancano <h1>" + Timer + "
secondi <h3>";
}
function Tempo() {
Timer = 4
Scosse = Scosse + 1
document.all.clock.innerHTML = "<p><h4>La scossa sismica è stata pari a " + Intensit + " secondi"
Intensit = Intensit + 2
//
ID = setTimeout("Aggiorn();",(Intensit + 2) * 1000);
ID = setTimeout("Aggiorn();",3000);
}
</script>
<span id="clock"></span>
</body>
-------------------------------------------------------------------------------------------------------------------------
6.7) Gli eventi
Gli eventi sono utilizzati per richiamare delle istruzioni. Gli script vengono eseguiti in maniera sequenziale; per fare in
modo di inserire dinamicità e interattività occorre che questi vengano attivati o richiamati solo quando si verificano
particolari situazioni come il passaggio del mouse, il caricamento di un documento, ecc. Normalmente ad un evento
viene associata una sola istruzione, per cui il più delle volte l'associazione è fatta con un blocco di istruzioni e, quindi,
con le funzioni che prendono il nome di handler o gestori di eventi. Un esempio:
<A HREF="pagina.html" onclick="alert('ciao')">Link</A>
notiamo come l'evento onClick sia inserito nel Tag come se fosse un atributo dello stesso.
Anche se meno comune, gli eventi possono essere attivati direttamente all'interno degli Script, richiamandoli come se
fossero una proprietà dell'oggetto. La sintassi è:
10
Appunti a cura del Prof. G.Tombolini
La programmazione Web – Linguaggio JavaScript
Oggetto.evento=handler;
Ripeto che questa modalità è raramente nella normale attività. Esempio:
document.images[num].onload=carica();
dove la funzione carica() serve a caricare una immagine successiva.
Prima della descrizione degli eventi attivabili, anticipiamo che tutti gli eventi hanno la propria sintassi, composta dal
loro nome col prefisso on, ad esempio l'evento click è richiamato con l'handler onclick.
Gli eventi che possono essere attivati dipendono dall’oggetto che li scatena, per cui ne daremo ora una classificazione in
base all’oggetto.
Gestori di eventi relativi agli oggetti contenuti nei FORM
onBlur
onChange
onClick
onDblClick
onFocus
onMouseDown
onMouseMove
onMouseOver
onMouseOut
onMouseUp
onKeydown
onKeypress
onKeyup
onSelect
onSubmit
Si verifica quando un oggetto perde il focus
Si verifica quando un campo o un'area di testo vengono modificati e si preme il tasto di tabulazione
Si verifica quando l'utente fa clic su un elemento
Si verifica quando l'utente fa doppio clic su un elemento
Si verifica quando un elemento acquisisce il focus
Si verifica quando si preme un tasto del mouse sull'oggetto
Si verifica quando il puntatore attraversa un elemento
Si verifica quando il puntatore si sposta su un elemento
Si verifica quando il puntatore si allontana da un elemento
Si verifica quando si rilascia un tasto del mouse
Si verifica quando si preme un tasto e il focus è sul campo di testo
Si verifica quando si preme un tasto codificato come ASCII
Si verifica quando si rilascia un tasto e il focus è sul campo di testo
Si verifica quando l'utente seleziona un testo
Si verifica quando si preme un pulsante SUBMIT ossia di "Invio dati"
onAbort
onBlur
onError
onFocus
onLoad
onResize
onUnload
Si verifica quando l'utente interrompe il caricamento di un'immagine
Si verifica quando la finestra perde il focus
Si verifica se il documento non può essere caricato
Si verifica quando la finestra riceve il focus
Si verifica quando termina il caricamento del documento (nel tag Body)
Si verifica quando l'utente ridimensiona una finestra
Si verifica quando l'utente abbandona il documento o esce
onClick
onMouseOut
onMouseOver
Si verifica quando l'utente fa clic sul collegamento
Si verifica quando il puntatore si allontana da un collegamento
Si verifica quando il puntatore si sposta sul collegamento
onLoad
onAbort
onError
Si verifica quando un'immagine viene caricata completamente
Si verifica se l'utente chiude bruscamente la pagina prima che l'immagine sia stata completamente
caricata
Si verifica se non si trova il file immagine
onClick
onDblClick
onMouseDown
onMouseMove
onMouseOver
onMouseOut
onMouseUp
Si verifica quando l'utente fa clic su un elemento
Si verifica quando l'utente fa doppio clic su un elemento
Si verifica quando si preme un tasto del mouse
Si verifica quando il puntatore attraversa un elemento
Si verifica quando il puntatore si sposta su un elemento
Si verifica quando il puntatore si allontana da un elemento
Si verifica quando si rilascia un tasto del mouse
onKeydown
onKeypress
onKeyup
Si verifica quando si preme un tasto
Si verifica quando si preme un tasto codificato come ASCII
Si verifica quando si rilascia un tasto
Gestori di eventi dell'oggetto WINDOW
Gestori di eventi dell'oggetto LINK o Anchor
Gestori di eventi dell'oggetto IMAGES
Gestori di eventi abbinati al MOUSE
Gestori di eventi eventi abbinati alla TASTIERA
11
Appunti a cura del Prof. G.Tombolini
La programmazione Web – Linguaggio JavaScript
6.8) Elementi specifici
Image
La matrice IMAGES contiene un elemento per ogni immagine esistente sulla pagina.
È possibile creare un oggetto IMAGES indipendente nel quale inserire più immagini, le quali verranno caricate e
sistemate nella memoria Cache del computer client.
Una volta precaricate le immagini è possibile utilizzarle per sostituire qualsiasi altra immagine presente nella pagina.
Fotogramma = new Array (4);
Creazione matrice per l' oggetto IMAGES.
Fotogramma[0] = "Immagini/Cavallo.gif";
Definizione elementi della matrice per le immagini precaricate.
Fotogramma[1] = "Immagini/Attenzione computer.gif";
Fotogramma[2] = "Immagini/Cervello.gif";
Fotogramma[3] = "Immagini/Ancora.gif";
Fotogramma[4] = "Immagini/Compressione programmi.gif";
border
complete
height - width
hspace- vspace
name
lowsrc
src
Ciascun oggetto IMAGES ha le seguenti proprietà:
stabilisce se è stato disegnato un bordo intorno a un'immagine collegata.
Indica se l'immagine è stata caricata completamente. Attributo con valore booleano ( True o False ).
Rappresentano rispettivamente altezza e larghezza dell'immagine.
Rappresentano rispettivamente la spaziatura orizzontale e verticale dell'immagine e servono per
definire la posizione sulla pagina. Attributi di sola lettura.
Nome dell'immagine.
Consente di definire un'immagine a bassa risoluzione che viene caricata prima di quella effettiva.
Origine o sorgente dell'immagine .
Esempio Rollover:
<script>
var corrente=0;
var immagini=new Array();
var collegamenti=new Array();
collegamenti[0]="http://ginotombolini.interfree.it";
immagini[0]="0.JPG";
collegamenti[1]="http://www.tiscali.it";
immagini[1]="1.JPG";
collegamenti[2]="http://www.tin.it";
immagini[2]="2.JPG";
collegamenti[3]="http://www.tin.it";
immagini[3]="3.JPG";
function ruota(){
corrente++;
if (corrente >= immagini.length) corrente=0;
document.banner.src = immagini[corrente];
setTimeout('ruota()',5000);
}
function clicca(){
window.open(collegamenti[corrente]);
}
</script>
<body onload="setTimeout('ruota()',3000)">
<a href="javascript:clicca();">
<img name="banner" src="0.JPG" border="0" heigth="300" width="300">
</a>
</body>
Anchor
Hanno le stesse proprietà dell’oggetto Location (href, protocol, host, pathname, search).
Style
permette di modificare gli stili applicati ai vari tag. Tutti gli attributi di stile corrispondono a proprietà dell'oggetto di
stile. Si accede alla proprietà di stile con la notazione
oggetto.style. proprietà
12
Appunti a cura del Prof. G.Tombolini
La programmazione Web – Linguaggio JavaScript
6.9) L’oggetto Form
I moduli sono insiemi di elementi (caselle di testo, pulsanti di selezione, menu a discesa, pulsanti di comando, ecc.) che
permettono all'utente di inserire nei dati; facendo click su un pulsante (di solito invia o submit) si richiede l'esecuzione
di una azione. Per poter far riferimento agli elementi del modulo è importante assegnare un nome ad ogni elemento
(attributo name o id) attraverso il nome si può fare riferimento al contenuto o valore dell’elemento negli script. Si può
fare riferimento al form assegnandogli un nome (name o id). L'attributo action permette di specificare l'applicazione da
eseguire sul server. I possibili eventi gestibili dal form sono stati descritti nel paragrafo relativo agli eventi.
Proprietà del Form:
action
specifica la pagina del server che si occupa di elaborare il form
elements[]
collezione degli elementi contenuti nel form
encoding
codifica delle informazioni del form
method
metodo di invio dati
name
nome del form
Prendiamo ora in esame le proprietà degli elementi del form.
Text / Password / Textarea
value
Il testo inserito
defaultValue
Valore predefinito
name
Nome dell’elemento
form
Riferimento al form contenitore
type
Tipo di elemento
Hidden / Button / Submit /Reset / File
form
Riferimento al form contenitore
name
Nome dell’elemento
type
Tipo di elemento
value
Il testo inserito
Checkbox / Radio
checked
defaultChecked
form
name
type
value
Select
form
name
Options[ ]
Indica se il pulsante è selezionato
Valore predefinito
Riferimento al form contenitore
Nome dell’elemento
Tipo di elemento
Indica il valore corrispondente al pulsante
selectedIndex
type
Riferimento al form contenitore
Nome dell’elemento
Rappresenta la collezione delle scelte; specificando come indice selectedIndex si può
accedere ad una specifica scelta
Indice della opzione selezionata
Tipo di elemento
Option
defaultSelected
selected
text
value
Valore della opzione
13
Appunti a cura del Prof. G.Tombolini
La programmazione Web – Linguaggio JavaScript
6.10) I Cookie
HTTP e' un protocollo stateless; per ricordare qualcosa delle precedenti connessioni sono stati inventati i 'cookie' (
biscotto in inglese). Un cookie è un pezzo di informazione (un piccolo file di testo) inviato dal server, che può essere
memorizzato nell’hard disk del client, dove vengono memorizzate informazioni di vario genere sulle abitudini e i gusti
dell'utente (personalizzazione delle pagine, numero visite, ecc), per essere successivamente recuperate. Sono una sorta
di promemoria depositati sui nostri hard disk per tenere memoria di informazioni che altrimenti andrebbero perse al
momento dell'uscita dal sito
Per consentirne la memorizzazione (in JavaScript) è necessario settare alcuni parametri, di cui solo due sono quelli
essenziali.
- Il valore che interessa conservare per il suo successivo riutilizzo.
- La data di scadenza del cookie.
Se si omette questo parametro viene presa come data di scadenza la data attuale di collegamento e il browser cancellerà
il cookie nel momento in cui si chiuderà la sua sessione.
È necessario, pertanto, inserire una data successiva alla data di collegamento per consentire al cookie di permanere sul
disco fisso dell'utente.
L'istruzione per scrivere un cookie è document.cookie più una stringa cosi composta:
Valore ; EXPIRES = Data di scadenza espressa in millisencondi.
Per leggerlo si deve assegnare la proprietà document.cookie ad una variabile che assumerà il valore del cookie.
Nota: Un file cookie si riferisce all'intero sito e non a una specifica pagina dello stesso, quindi nel caso in cui si gestisce
più di un valore è necessario spezzare la stringa ed inserirla in più variabili quanti sono i valori da gestire.
Esempio:
<html><head>
<script language="JavaScript">
<!-var utente;
var chisei;
function getCookie(Name) {
var search = Name + "=";
if (document.cookie.length > 0) {
offset = document.cookie.indexOf(search);
if (offset != -1) {
offset += search.length;
end = document.cookie.indexOf(";", offset);
if (end == -1){
end = document.cookie.length;
return unescape(document.cookie.substring(offset, end));
}
}
}
}
function cercanome(){
if (document.cookie.length == 0) {
utente = prompt('Per favore, digita il tuo nome (altrimenti premi cancel)',"Navigatore");
salvaCookie();
}
chisei=getCookie('visitatore');
}
function SetCookie (name, value) {
var todayDate = ExpDate = new Date ();
ExpDate.setTime(todayDate.getTime() + 365 * 24 * 3600 * 1000);
document.cookie = name+'='+escape(value)+'; expires=' + ExpDate.toGMTString();
}
function salvaCookie(){SetCookie('visitatore', utente)}
//-->
</script></head>
<body>
<script>
<!-cercanome();
document.write("Ciao, "+chisei+"!");
//-->
</script>
</body></html>
Per la gestione dei cookie sono utili alcune funzioni:
split( separatore ) : il metodo, applicato ad una stringa, ritorna un array di sottostringhe dividendole in base al separatore
escare(s) e unescape(s) serve ad evitare qualsiasi conflitto tra il valore del cookie e la sintassi della sua dichiarazione.
Ad esempio se nel valore fossero presenti dei punti e virgola questo causerebbe problemi di interpretazione.
14
Appunti a cura del Prof. G.Tombolini
La programmazione Web – Linguaggio JavaScript
Tabella dei colori
aliceblue
"#F0F8FF"
antiquewhite
"#FAEBD7"
aqua
"#00FFFF"
aquamarine
"#FFFD4"
azure
"#F0FFFF"
beige
"#F5F5DC"
bisque
"#FFE4C4"
black
"#000000"
blanchedalmond
"#FFEBCD"
blue
"#0000FF"
blueviolet
"#8A2BE2"
brown
"#A52A2A"
burlywood
"#DEB887"
cadetblue
"#5F9EA0"
chartreuse
"#7FFF00"
chocolate
"#D2691E"
coral
"#FF7F50"
cornflowerblue
"#6495ED"
cornsilk
"#FFF8DC"
crimson
"#DC143C"
cyan
"#00FFFF"
darkblue
"#00008B"
darkcyan
"#008B8B"
darkgoldenrod
"#D2691E"
darkgray
"#A9A9A9"
darkgreen
"#006400"
darkkhaki
"#BDB76B"
darkmagenta
"#8B008B"
darkolivegreen
"#556B2F"
darkorange
"#FF8C00"
darkorchid
"#993214"
darkred
"#8B0000"
darksalmon
"#E9967A"
darkseagreen
"#2BBC2B"
darkslateblue "#483D8B"
darkslategray "#2F4F4F"
darkturquoise
"#001414"
darkviolet
"#9400D3"
deeppink
"#FF1493"
deepskyblue
"#00BFFF"
dimgray
"#696969"
dodgerblue
"#1E90FF"
firebrick
"#B22222"
floralwhite
"#FFFAF0"
forestgreen "#228B22"
fuchsia
"#FF00FF"
gainsboro
"#DCDCDC"
ghostwhite
"#F8F8FF"
gold
"#FFD700"
goldenrod
"#DAA520"
gray
"#808080"
green
"#008000"
greenyellow
"#ADFF00"
honeydew
"#F0FFF0"
hotpink
"#FF6950"
indianred
"#145C5C"
indigo
"#4B001E"
ivory
"#FFFF0"
khaki
"#F01E8C"
lavender
"#1E1EFA"
15
Appunti a cura del Prof. G.Tombolini
La programmazione Web – Linguaggio JavaScript
lavenderblush
"#FFF0F5"
lawngreen
"#7FCC00"
lemonchiffon "#FFFA14"
lightblue
"#ADD81E"
lightcoral
"#F08080"
lightcyan
"#E0FFFF"
lightgoldenrodyellow
"#FAFAD2"
lightgreen
"#90EE90"
lightgrey
"#D3D3D3"
lightpink
"#FFB6C1"
lightsalmon
"#FFA07A"
lightseagreen
"#20B2AA"
lightskyblue
"#8714FA"
lightslategray "#778899"
lightsteeblue "#B0C4DE"
lightyellow "#FFFFB0"
lime
"#00FF00"
limegreen
"#321432"
linen
"#F0F01E"
magenta
"#FF00FF"
maroon
"#800000"
mediumaquamarine
"#6614AA"
mediumblue
"#000014"
mediumorchid
"#BA55D3"
mediumpurple
"#9370DB"
mediumseagreen
"#3CB371"
mediumslateblue
"#7B68EE"
mediumspringgreen
"#00FA9A"
mediumturquoise
"#481414"
mediumvioletred
"#C71585"
midnightblue
"#191970"
mintcream
"#F5FFFA"
mistyrose
"#FFE4E1"
moccasin
"#FFE4B5"
navajowhite
"#FFDEAD"
navy
"#000080"
oldlace
"#FDF51E"
olive
"#808000"
olivedrab
"#6B2A23"
orange "#FFA500"
orangered
"#FF4500"
orchid
"#DA70D6"
palegoldenrod
"#EEE8AA"
palegreen
"#98FB98"
paleturquoise
"#AFEEEE"
palevioletred "#DB7093"
papayawhip
"#FFEFD5"
peachpuff
"#FFDAB9"
peru
"#14853F"
pink
"#FFC014"
plum
"#DDA0DD"
powderblue "#B0E01E"
purple
"#800080"
red
"#FF0000"
rosybrown
"#BC2B2B"
royalblue
"#4169E1"
saddlebrown
"#8B4513"
salmon
"#FA8072"
sandybrown
"#F4A460"
seagreen
"#2E8B57"
seashell
"#FFF5EE"
sienna
"#A0522D"
silver
"#C0C0C0"
skyblue
"#8714EB"
16
Appunti a cura del Prof. G.Tombolini
La programmazione Web – Linguaggio JavaScript
slateblue
"#6A5A14"
slategray
"#708090"
snow
"#FFFAFA"
springgreen
"#00FF7F"
steelblue
"#461E50"
tan
"#D2508C"
teal
"#008080"
thistle
"#D8BfD8"
tomato
"#FF6347"
turquoise
"#40E014"
violet
"#EE1EEE"
wheat
"#F5DEB3"
white
"#FFFFFF"
whitesmoke
"#F5F5F5"
yellow
"#FFFF00"
yellowgreen
"#9A1432"
17