Laboratorio di reti II: Javascript

Transcript

Laboratorio di reti II: Javascript
Laboratorio di reti II: Javascript
Stefano Brocchi
[email protected]
30 marzo, 2009
Stefano Brocchi
Laboratorio di reti II: Javascript
30 marzo, 2009
1 / 46
Javascript
Javascript
Il Javascript è un linguaggio di scripting incapsulabile in una pagina
web
Nonostante il suo nome, ha ben poco a che vedere con il linguaggio
Java
Quando un browser scarica una pagina web contenente Javascript,
esso si occuperè di eseguire il codice in essa contenuto
Stefano Brocchi
Laboratorio di reti II: Javascript
30 marzo, 2009
2 / 46
Javascript
Limitazioni del Javascript
La sicurezza lato client è garantita innanzitutto dal tipo di funzioni ed
istruzioni a disposizione che ci permettono di effettuare operazioni
solo sulla pagina web stessa.
Una limitazione che è necessario imporre al codice Javascript è di
permettergli l’accesso solo a dati (valori di campi di input, cookie...)
relativi al suo sito di origine.
Del codice Javascript non può per esempio accedere a cookie mandati
da siti aperti in altre finestre del browser.
Il linguaggio Javascript non viene compilato ma direttamente
interpretato
Stefano Brocchi
Laboratorio di reti II: Javascript
30 marzo, 2009
3 / 46
Javascript
Caratteristiche del Javascript
Il Javascript viene quindi eseguito lato client, al contrario di linguaggi
come PHP che vengono eseguiti lato server
Questo comporta varie conseguenze:
E’ possibile realizzare in javascript pagine che interagiscono con
l’utente senza collegarsi e doversi ricaricare da capo, per ogni
cambiamento, al server
Il codice Javascript è potenzialmente del tutto visibile, ed
eventualmente modificabile, all’utente. Non è opportuno quindi
affidarvi compiti che possono coinvolgere problematiche di sicurezza del
sito.
Stefano Brocchi
Laboratorio di reti II: Javascript
30 marzo, 2009
4 / 46
Javascript
Problematiche di compatibilità
Essendo il Javascript un linguaggio funzionante su più piattaforme,
rappresentate in questo caso dai vari browser questo può portare a
delle incompatibilità
Non sempre tutte le funzionalità di Javascript sono implementate da
tutti i browser
Cercare quindi di limitare l’uso delle funzioni più avanzate al minimo
per massimizzare la compatibilità
Per avere un’idea di quali funzioni sono disponibili su quali browser,
esistono numerose risorse online tra cui www.w3schools.com/js
Stefano Brocchi
Laboratorio di reti II: Javascript
30 marzo, 2009
5 / 46
Javascript
Limitazioni
Bisogna inoltre considerare che molte istruzioni Javascript sono delle
richieste inviate al browser
Un browser è quindi libero di limitare o negare il funzionamento a
varie istruzioni per vari criteri, solitamente riguardanti la sicurezza o
la privacy
Una limitazione classica è quella di impedire l’apertura di nuove
finestre non richieste (pop-up)
Un altro esempio: Firefox proibisce la chiusura di finestre che non sono
state a sua volta aperte da Javascript
Stefano Brocchi
Laboratorio di reti II: Javascript
30 marzo, 2009
6 / 46
Javascript
Javascript nelle pagine web
Uso del tag script
Per inserire Javascript in una pagina web è nesessario usare il tag
<script> con una sintassi come la seguente:
<script type=’text/javascript’> ...
</script>
E’ possibile caricare il codice da un file tramite l’attributo src
<script type=’text/javascript’
src=’code.js’></script>
Stefano Brocchi
Laboratorio di reti II: Javascript
30 marzo, 2009
7 / 46
Javascript
Javascript nelle pagine web
Compatibilità con vecchi browser
Alcuni browser potrebbero non eseguire il codice javascript
Per evitare che in questo caso il codice Javascript venga visualizzato
nella pagina, si utilizza la seguente sintassi:
<SCRIPT type=’text/javascript’>
<!-...
// Codice Javascript
//-->
</SCRIPT>
Possibile inoltre specificare il tag <noscript>, il cui contenuto viene
visualizzato solo se il browser non supporta Javascript
Stefano Brocchi
Laboratorio di reti II: Javascript
30 marzo, 2009
8 / 46
Javascript
Il linguaggio
Il linguaggio Javascript
Javascript è weak-typed similarmente a PHP: ad una variabile non
viene associato un tipo ma solo il suo valore
Molti istruzioni e costrutti di base sono uguali a Java:
Istruzioni if, for e while e relativo uso di graffe
Operatori: aritmetici (+, -, ...), logici (&&, k, !), di confronto (==,
!=, <,...) o di assegnamento (=, +=,...)
Concatenazione tra stringhe tramite ’+’
Commenti tramite // e /*...*/
Per altre cose vi sono delle differenze:
Un’istruzione termina con un ’;’ o con un ’a capo’
L’occultamento della visibilità di una variabile avviene tra funzione e
funzione ma non tra blocco e blocco
Stefano Brocchi
Laboratorio di reti II: Javascript
30 marzo, 2009
9 / 46
Javascript
Il linguaggio
Scrittura sul documento
Una delle più semplici funzioni in Javascript è document.write()
L’oggetto document rappresenta la pagina web stessa; in seguito
verranno approfonditi gli oggetti a disposizione del codice Javascript
Grazie a questa funzione il contenuto della stringa passata come
argomento viene inserito nel codice HTML
Se la funzione viene richiamata quando la pagina è stata già
interamente caricata dal client, questa sovrascriverà il contenuto
precedente. In questi casi occorre utilizzare altre tecniche.
Stefano Brocchi
Laboratorio di reti II: Javascript
30 marzo, 2009
10 / 46
Javascript
Il linguaggio
Hello world
Un semplice esempio di pagina HTML con Javascript:
<html>
<head>
<title>Hello World in Javascript</title>
</head>
<body>
<center>
<script type=’text/javascript’>
document.write(’<h1>Hello world !</h1>’);
</script>
</center>
</body>
</html>
Stefano Brocchi
Laboratorio di reti II: Javascript
30 marzo, 2009
11 / 46
Javascript
Vettori, funzioni e oggetti
Vettori
Possibile creare vettori associativi similarmente a PHP
Per ciclare su tutti gli indici di un vettore (come per il foreach in
PHP) si può usare il for con la seguente sintassi:
for (index in array) { ...}
Un esempio:
myArray = new Array("Zero");
myArray[1] = "Uno";
myArray["Due"] = 2;
for (x in myArray) {
document.write(x + " " + myArray[x] + "<br>");
}
Stefano Brocchi
Laboratorio di reti II: Javascript
30 marzo, 2009
12 / 46
Javascript
Vettori, funzioni e oggetti
Funzioni
Possono venir dichiarate funzioni in Javascript tramite la sintassi
function myFunction(var1, var2, ...) {
// Corpo della funzione
}
Come in PHP, essendo Javascript weak-typed, non occorre specificare
il tipo dei parametri in ingresso nè l’eventuale tipo di ritorno
restituibile tramite return
Stefano Brocchi
Laboratorio di reti II: Javascript
30 marzo, 2009
13 / 46
Javascript
Vettori, funzioni e oggetti
Oggetti
Sebbene Javascript sia un linguaggio orientato agli oggetti, la
gestione di questi differisce molto da altri linguaggi
Non esiste una definizione di classe. I metodi di un oggetto possono
essere definiti dinamicamente ed aggiunti ad un oggetto a run time
La definizione di un oggetto può avvenire tramite la definizione di una
qualsiasi funzione che ne farà poi da costruttore
Per fare riferimento a proprietà dell’oggetto, usare la parola chiave
this
Stefano Brocchi
Laboratorio di reti II: Javascript
30 marzo, 2009
14 / 46
Javascript
Vettori, funzioni e oggetti
Oggetti: esempio
Un esempio della creazione di un oggetto persona con campi nome,
cognome e eta
function persona(nome, cognome, eta) {
this.nome = nome;
this.cognome = cognome;
this.eta = eta;
}
marco = new persona(marco, rossi, 24);
Stefano Brocchi
Laboratorio di reti II: Javascript
30 marzo, 2009
15 / 46
Javascript
Vettori, funzioni e oggetti
Creazione di metodi
I metodi di un oggetto non sono altro che funzioni attaccate
all’oggetto stesso
La creazione di un metodo avviene allo stesso modo di quella di una
proprietà, assegnando ad un campo il nome di un metodo. Un
esempio:
marco = new persona("marco", "rossi", 24);
function compleanno() {
this.eta = this.eta + 1;
}
marco.compleanno = compleanno;
marco.compleanno();
document.write(marco.eta);
// Output: 25
Stefano Brocchi
Laboratorio di reti II: Javascript
30 marzo, 2009
16 / 46
Javascript
Vettori, funzioni e oggetti
Prototipi
Per specificare campi e metodi che devono essere comuni a tutte le
istanze di un certo oggetto, in Javascript si fa uso di prototipi
Aggiungendo tali metodi e campi al campo prototype relativo al
nome dell’oggetto, ogni istanza di tale oggetto li conterrà
automaticamente
Stefano Brocchi
Laboratorio di reti II: Javascript
30 marzo, 2009
17 / 46
Javascript
Vettori, funzioni e oggetti
Prototipi: esempio
Nell’esempio precedente, sarebbe sensato definire il metodo
’compleanno’ per tutti gli oggetti persona:
function compleanno() {
this.eta = this.eta + 1;
}
persona.prototype.compleanno = compleanno;
marco = new persona("marco", "rossi", 24);
marco.compleanno();
document.write(marco.eta);
// Output: 25
Stefano Brocchi
Laboratorio di reti II: Javascript
30 marzo, 2009
18 / 46
Javascript
Vettori, funzioni e oggetti
Oggetti come vettori
Il modo in cui Javascript tratta gli oggetti è di considerarli niente
altro che vettori associativi dinamici
Il riferimento ad una funzione o ad un campo può essere fatto
equivalentemente con la sintassi relativa agli oggetti o con quella
relativa ai vettori
marco.nome è equivalente a marco[’nome’]
Non essendoci definizioni di tipo, per sapere se un’oggetto ha un
determinato metodo si può verificare se il riferimento a quel nome di
funzione restituisce true
Es. if (marco.compleanno) { marco.compleanno(); }
Stefano Brocchi
Laboratorio di reti II: Javascript
30 marzo, 2009
19 / 46
Javascript
Vettori, funzioni e oggetti
Oggetti come vettori: esempio
Come per i vettori, l’istruzione for può essere utilizzata per scorrere
tutti i campi e le funzioni di un oggetto. Nel nostro esempio:
for (key in marco) {
document.write(key + " -> " + marco[key] + "<br>")
}
Output:
nome -> marco
cognome -> rossi
eta -> 25
compleanno -> function compleanno() {
this.eta = this.eta + 1;
}
Stefano Brocchi
Laboratorio di reti II: Javascript
30 marzo, 2009
20 / 46
Javascript
Oggetto Window
Oggetto Window
Vediamo alcuni oggetti predefiniti in Javascript
L’oggetto Window rappresenta la finestra contenente la pagina web.
Viene automaticamente creato da Javascript al caricamento del tag
<body>
Metodi e proprietà di Window sono automaticamente accessibili dal
codice. Di seguito ne sono elencati alcune
outerHeight Altezza della finestra. Analogamente outerWidth contiene la larghezza
document Oggetto rappresentante il documento corrente
location Oggetto che rappresenta la locazione, sotto forma di URL, del
documento. Può essere cambiato per ottenere una redirezione o per
aggiornare la pagina
Stefano Brocchi
Laboratorio di reti II: Javascript
30 marzo, 2009
21 / 46
Javascript
Oggetto Window
Uso di location: redirezioni e refresh
Per esempio, con il seguente codice si esegue una redirezione tramite
Javascript:
<script type=’text/javascript’>
location = "http://www.google.com";
</script>
Il metodo reload di location richiede invece di ricaricare la pagina
corrente
Stefano Brocchi
Laboratorio di reti II: Javascript
30 marzo, 2009
22 / 46
Javascript
Oggetto Window
Metodi alert, confirm e prompt
Vediamo alcune funzioni basilari offerte da Window:
alert(testo)
Apre una finestra di avviso, chiedendo all’utente di procedere con un
tasto ’OK’
confirm(testo)
Apre una finestra di conferma con un determinato messaggio. Se
l’utente da conferma (’OK’) ritorna true, altrimenti false
prompt(testo, default)
Apre una finestra di input con il testo di default indicato. Ritorna il
testo inserito dall’utente o null se l’utente sceglie l’opzione ’annulla’
Stefano Brocchi
Laboratorio di reti II: Javascript
30 marzo, 2009
23 / 46
Javascript
Oggetto Window
Uso di Window: esempio
Un semplice esempio di alcune funzionalità di Window
<script type=’text/javascript’>
if (outerWidth < 640) {
msg = "La finestra del browser è meno ";
msg += "larga di 640 pixel\n";
msg += "Il sito potrebbe non venir "
msg += "visualizzato correttamente";
alert(msg);
}
</script>
Stefano Brocchi
Laboratorio di reti II: Javascript
30 marzo, 2009
24 / 46
Javascript
Oggetto Window
Altri metodi di Window
In breve, vediamo altri metodi utili di Window
open(), close(), createPopup()
Metodi per la chiusura e l’apertura di finestre del browser. Open()
richiederà l’url di destinazione; close è spesso permessa solo per
finestre aperte da Javascript.
focus(), blur()
Metodi per dare o togliere il fuoco a una finestra
scrollBy(), scrollTo()
Per scorrere la finestra ad un determinato punto; i metodi richiedono
le coordinate della destinazione in pixel. scrollBy() richiede le
coordinate relative al punto corrente
Stefano Brocchi
Laboratorio di reti II: Javascript
30 marzo, 2009
25 / 46
Javascript
Metodi per la temporizzazione
Metodi per la temporizzazione
In Javascript sono disponibili dei metodi per la gestione della
temporizzazione:
setTimeout()
Metodo per eseguire una determinata azione dopo un determinato
intervallo di tempo; richiede come argomento una stringa contenente
il codice Javascript da eseguire e l’intervallo di tempo, in millisecondi
setInterval()
Simile al precedente, impone di eseguire un’azione per ogni
specificato intervallo di tempo.
Stefano Brocchi
Laboratorio di reti II: Javascript
30 marzo, 2009
26 / 46
Javascript
Metodi per la temporizzazione
Un esempio di setInterval
Un esempio che visualizza una finestra per ogni minuto dal momento
in cui l’utente ha aperto la pagina
t = 0;
function finestra() {
t++;
alert(’Pagina aperta da ’ + t + ’ minuti’);
}
setInterval(’finestra()’, 60000);
Stefano Brocchi
Laboratorio di reti II: Javascript
30 marzo, 2009
27 / 46
Javascript
Metodi per la temporizzazione
Interrompere azioni temporizzate
Per interrompere azioni preprogrammate con setTimeout() o
setInterval(), esistono i metodi clearTimeout() e
clearInterval()
I metodi setTimeout() o setInterval() quando richiamati
restituiscono un identificativo rappresentante il processo avviato
Tale intero dovrà essere passato a clearTimeout() o
clearInterval() per interrompere la relativa azione
Stefano Brocchi
Laboratorio di reti II: Javascript
30 marzo, 2009
28 / 46
Javascript
Metodi per la temporizzazione
Un esempio per clearInterval
Il seguente codice per esempio visualizza una finestra ogni 5 secondi
finchè l’utente non ne chiede l’interruzione
t = 0;
id = setInterval("finestra();", 5000);
function finestra() {
t += 5;
res = confirm("Pagina aperta da " + t + " secondi\n" +
"Continuare a visualizzare la finestra ?");
if (! res) {
clearInterval(id);
}
}
Stefano Brocchi
Laboratorio di reti II: Javascript
30 marzo, 2009
29 / 46
Javascript
Oggetti predefiniti relativi al documento
Oggetti Navigator e Screen
Altri due oggetti utili resi disponibili da Javascript sono:
Navigator, contenente informazioni sul browser utilizzato (proprietà
appName, appVersion, cookieEnabled...)
Screen, contenente informazioni sulla risoluzione dello schermo
dell’utente (proprietà width, height, colorDepth...)
Stefano Brocchi
Laboratorio di reti II: Javascript
30 marzo, 2009
30 / 46
Javascript
Oggetti predefiniti relativi al documento
Oggetto document
In Window è contenuto il campo document rappresentante il
documento stesso
Alcuni campi in esso contenuti sono:
cookie Oggetto relativo al cookie della pagina
referrer Rappresentante la pagina dalla quale è stato richiesto il caricamento
della pagina corrente
title Contenente il titolo della pagina, ed utilizzabile per la sua
manipolazione
Stefano Brocchi
Laboratorio di reti II: Javascript
30 marzo, 2009
31 / 46
Javascript
DOM e manipolazione di attributi HTML e CSS
Document object model
In Javascript un documento HTML è rappresentato tramite un
modello detto Document Object Model (DOM)
In questo modello ogni tag è rappresentato tramite un oggetto
Gli attributi HTML saranno rappresentati come proprietà del relativo
oggetto in Javascript
Stefano Brocchi
Laboratorio di reti II: Javascript
30 marzo, 2009
32 / 46
Javascript
DOM e manipolazione di attributi HTML e CSS
Manipolare attributi HTML
Nell’oggetto document sono disponibili metodi per ottenere oggetti
relativi ai singoli tag del documento
Questi possono essere utilizzati per manipolare le caratteristiche del
documento
Vediamo come si possono manipolare attributi di tag HTML
rappresentati come proprietà in Javascript. La seguente funzione
imposta per esempio l’attributo align a right per un qualsiasi tag
function rightAlign(tag) {
tag.align = ’right’;
}
Stefano Brocchi
Laboratorio di reti II: Javascript
30 marzo, 2009
33 / 46
Javascript
DOM e manipolazione di attributi HTML e CSS
Manipolare attributi CSS
Per quanto riguarda le proprietà CSS, queste sono rappresentate a sua
volta come proprietà della proprietà style
Un esempio: la seguente funzione imposta la proprietà CSS
background-color (colore di sfondo) a yellow
function yellowBackground(tag) {
tag.style.backgroundColor = ’yellow’;
}
Esiste una lieve discrepanza tra i due nomi di proprietà: gli attributi in
CSS contenenti un trattino vengono usualmente chiamati senza (ma
con la maiuscola) in Javascript
Stefano Brocchi
Laboratorio di reti II: Javascript
30 marzo, 2009
34 / 46
Javascript
DOM e manipolazione di attributi HTML e CSS
Oggetti relativi a tag
Vediamo i metodi di document per recuperare gli oggetti relativi ai
vari tag:
anchors(), forms() e images() ritornano dei vettori contenenti,
rispettivamente, tutti i tag <a>, <form> e <img>
getElementById() ritorna un tag con un determinato identificativo
(attributo id)
getElementsByTagName() ritorna tutti i tag di un determinato tipo
getElementsByName() ritorna tutti i tag con un determinato nome
(attributo name)
Stefano Brocchi
Laboratorio di reti II: Javascript
30 marzo, 2009
35 / 46
Javascript
DOM e manipolazione di attributi HTML e CSS
Oggetti relativi a tag: esempio
Vediamo un esempio che imposta lo sfondo di un paragrafo al colore
giallo
<p id="par">
Contenuto del paragrafo...
</p>
<script type=’text/javascript’>
tag = document.getElementById("par");
tag.style.backgroundColor = ’yellow’;
</script>
Stefano Brocchi
Laboratorio di reti II: Javascript
30 marzo, 2009
36 / 46
Javascript
DOM e manipolazione di attributi HTML e CSS
Proprietà innerHTML
Un’altra proprietà disponibile per tutti i tag è innerHTML, che
permette di ottenere o cambiare il codice HTML contenuto all’interno
del tag
Le funzionalità viste finore possono essere particolarmente utili se
collegabili a determinati eventi azionati dall’utente. Per questo
vedremo adesso come funziona la gestione degli eventi in Javascript
Stefano Brocchi
Laboratorio di reti II: Javascript
30 marzo, 2009
37 / 46
Javascript
Eventi in Javascript
Eventi in Javascript
Gli eventi vengono gestiti in Javascript tramite una serie di gestori
(handler) associati ad un determinato tag
Un gestore si specifica tramite uno specifico attributo HTML a
seconda del tipo di evento da catturare
Il valore dell’attributo deve essere una stringa contenente il codice
Javascript da eseguire all’avvenimento dell’evento
Nel codice è possibile specificare un’istruzione return che specifica se
altre azioni che avverrebbero a seguito dell’evento vengano eseguite o
no
Stefano Brocchi
Laboratorio di reti II: Javascript
30 marzo, 2009
38 / 46
Javascript
Eventi in Javascript
Eventi in Javascript: esempio
Un’esempio dove il browser chiede conferma all’utente che clicca su
un certo link
<a href = ’http://www.unisi.it’
onClick = ’return confirmWin()’>
Sito dell’università
</a>
<script type=’text/javascript’>
function confirmWin() {
return confirm (’Seguire il link ?’);
}
</script>
Stefano Brocchi
Laboratorio di reti II: Javascript
30 marzo, 2009
39 / 46
Javascript
Eventi in Javascript
Tipi di eventi
Vi sono numerosi possibili handler di eventi, alcuni dei quali
associabili solo ad alcuni tag. Qui sono elencati per categorie:
Azioni legate al mouse: onClick, onDbClick, onMouseDown,
onMouseUp, onMouseMove, onMouseOver, onMouseOut
Eventi legati al caricamento: onLoad, onUnload, onAbort
Azioni attivate da tastiera: onKeyPress, onKeyDown, onKeyUp
Eventi generati dal cambiamento di fuoco o di dimensioni della
finestra: onBlur, onFocus, onResize
Attivazione di pulsanti in form: onSubmit, onReset
Cambiamento di contenuto di campi di testo: onChange
Stefano Brocchi
Laboratorio di reti II: Javascript
30 marzo, 2009
40 / 46
Javascript
Eventi in Javascript
Oggetto event
Nel codice della gestione di un evento è possibile disporre di un
oggetto event che descrive l’evento in questione
Alcune delle proprietà di event sono:
button, indicante che bottone del mouse è stato premuto
clientX e clientY, contenenti le coordinate del cursore al momento
dell’evento
currentTarget, contenente il tag che ha attivato l’evento. Purtroppo
non disponibile su explorer
Stefano Brocchi
Laboratorio di reti II: Javascript
30 marzo, 2009
41 / 46
Javascript
Gestione degli errori
Gestione degli errori
In caso di errore nell’esecuzione o nel parsing del codice Javascript,
non verrà visualizzato alcun messaggio nella pagina
L’errore è solitamente visualizzato in una console degli errori
disponibile nel browser
Per la gestione degli errori, è inoltre possibile usare il costrutto
try...catch similarmente a come si fa in Java
Stefano Brocchi
Laboratorio di reti II: Javascript
30 marzo, 2009
42 / 46
Javascript
Cenni su AJAX
AJAX
Per alcune applicazioni web è necessario o comunque desiderabile
modificare la pagina ca seconda di dati provenienti dal server senza
ricaricarla interamente
Per questo scopo è stata sviluppata una tecnica detta Asinchronous
JavaScript And Xml (AJAX)
Si sfrutta il fatto che a Javascript è permesso di comunicare con il
server tramite XML
AJAX è quindi una tecnica che combina scripting lato client
(Javascript) con un formato per lo scambio di dati (XML) ed uno
script in ascolto lato server (come PHP)
Stefano Brocchi
Laboratorio di reti II: Javascript
30 marzo, 2009
43 / 46
Javascript
Esercizio
Esercizio
Per inserire codice Javascript nel forum, sarà necessario che questo
venga restituito dal codice PHP o dal codice Java
Per evitare confusione, è bene inserire più possibile il codice
Javascript in file esterni evitando di mescolarlo al codice PHP
Per lo sviluppo, può essere comodo testare il codice Javascript su
delle copie statiche (puro HTML) delle pagine dinamiche
Stefano Brocchi
Laboratorio di reti II: Javascript
30 marzo, 2009
44 / 46
Javascript
Esercizio
Esercizio
I possibili utilizzi di Javascript per rendere un sito interattivo per
impostare un comportamento complesso sono molteplici
Alcune funzionalità da realizzare potrebbero essere le seguenti.
Implementarne alcune a scelta
Evidenziare titoli di post o il contorno del box relativo al post quando il
mouse passa sopra l’oggetto
Inserire dei controlli sui dati immessi dagli utenti (es. dare un
messaggio di errore se l’utente non inserisce una password al momento
del login)
Visualizzare un messaggio di conferma quando l’utente effettua il
logout
Inserire dei sottomenù nel menu di navigazione che compaiono appena
il mouse passa sopra una voce di menu principale
Aggiornare le pagine dei post a intervalli di qualche minuto in modo da
mantenere aggiornata la discussione
Stefano Brocchi
Laboratorio di reti II: Javascript
30 marzo, 2009
45 / 46
Javascript
Esercizio
Esercizio
Altre modifiche più complesse potrebbero essere:
Nascondere o mostare il corpo di un post (o la descrizione di un
thread) quando l’utente clicca sul titolo o su un apposito pulsante
Alternare il valore dell’attributo style.display del contenitore del
corpo del post a none o block
Variare del testo o un’immagine visualizzata ogni pochi secondi,
scegliendo a rotazione un contenuto diverso tra un numero limitato di
possibilità.
Questa tecnica viene a volte utilizzata per ottenere una piccola
animazione in alcuni banner
Modificare l’attributo innerHTML o src periodicamente per ottenere
l’effetto
Fare comparire un menù con un’anteprima di un thread (es. titolo o
inizio dell’ultimo post) quando l’utente passa sopra il titolo del thread
o preme un’apposito pulsante
Stefano Brocchi
Laboratorio di reti II: Javascript
30 marzo, 2009
46 / 46