Writing HTML | Riguardo A | FAQ | Riferimenti | Tag | Lezioni | indietro | avanti |

27a. JavaScript : Alert e Rollover

Ora che l'hai assaggiato...

facciamo alcuni messaggi di alert...

generiamo messaggi di mouseover ...

bene!

Obiettivi

Dopo questa lezione sarai in grado di:

Lezione

Nota: Se non hai i documenti di lavoro dalla lezione precedente scaricane una copia ora.

La nostra prima dose di JavaScript e' quella di scrivere un comando all'interno di un hyperlink tag in modo che faccia qualche cosa quando viene premuto. Questo permette ai nostri link di fare qualche cosa di piu' che trasferirci semplicemente ad un altro documento:

  <a href="#" onClick="JavaScript Statement">testo del link</a>
NOTA: Noi abbiamo scritto questo link in modo che punti ad una anchor link (#) vuota all'interno dello stesso documento. Se noi lasciamo un nome di un file od un URL all'interno del link, il browser carichera' questo documento al termine dei suoi compiti. Noi vogliamo che il documento corrente non sia modificato.

I JavaScript statement elencati verranno eseguiti quando il visitatore fara' click sul link. L'evento onClick="..." e' causato da un mouse click. Nota che la "C" deve essere maiuscola! Ancora, osserva come il codice JavaScript sia racchiuso tra doppi apici che definiscono l'evento onClick, mentre la stringa del messaggio di alert usa apici singoli.

La prima cosa che faremo sara' modificare la nostra pagina del glossario del progetto Volcano Web, in modo che quest'elenco di termini nel primo paragrafo visualizzi un messaggio di alert definendo il loro significato.

  1. Apri il file term.html nel tuo text editor.
  2. Modifica la prima lista di <ul>..</ul> affinche' si legga:

    <li><A HREF="#" onClick="alert('Si definisce caldera una depressione del terreno di forma circolare causata da una eruzione di un corpo magmatico vicino e superficiale.')">caldera</A>
    <li><A HREF="#" onClick="alert'Si definisce vescicolarita\' la misura di quanto il volume di una roccia sia occupato da camere di aria.')">vescicolarita'</a>
    <li><A HREF="#" onClick="alert('Si definisce pahoehoe un tipo di lava basaltica che deriva da una parola hawaiiana per liscio e nodoso.')">pahoehoe</a>
    <li><A HREF="#" onClick="alert('La reologia e\' lo studio del modo in cui i materiali si deformano.')">reologia</a>
    <li><A HREF="#" onClick="alert("Un lahar e\' una colata di fango generata dai fianchi di un vulcano. Alcuni sostengono provenga dalla frase \"Attenzione!\" in lingua indonesiana.")">lahar</a>

    NOTA: Il codice JavaScript generera' dei messaggi di errore se ci saranno dei caratteri di RETURN all'interno del comando! Quindi ogni riga di <li> deve avere solo un RETURN alla fine della riga.

    Se il tuo codice JavaScript presenta un errore, il browser generera' un messaggio di errore nel momento in cui cerchera' di interpretare il codice. Per vedere come questo funzioni, prendi il JavaScript Error test.

    Osserva attentamente al modo con cui i caratteri di citazione vengono usati nella parte onClick del tag. L'intero comando JavaScript deve essere incluso in un set di apici. E lo stesso comando alert deve includere un'altra stringa che e' tra apici. Noi usiamo gli apici singoli e doppi a questo scopo, e non importa quali si usi:

    <A HREF="#" onClick="alert('Tu sei il capo!')">dimmi qualche cosa</A>

    agira' esattamente come:

    <A HREF="#" onClick='alert("Tu sei il capo!")'>dimmi qualche cosa</A>

    Perche' preoccuparsi? Diciamo che il messaggio che vuoi visualizzare nell'alert JavaScript ha bisogno di contenere un apice come carattere. Il codice JavaScript ha bisogno di sapere che l'apice sta a significare solo un apice e che non e' parte delle istruzioni JavaScript. Possiamo farlo mettendo uno slash rovesciato (\) di fronte al carattere dell'apice, tecnicamente conosciuto come di carattere "escaping".

    Quindi, nel nostro esempio precedente, potremmo volere che la parola Attenzione! nell'ultimo elemento dell'elenco fosse racchiusa tra caratteri di quoting. Se si vuole che questi siano apici singoli, potremmo usare:

    <li><A HREF="#" onClick="alert('Un lahar e\' una colata di fango generata dai fianchi di un vulcano. Alcuni sostengono provenga dalla frase \"Attenzione!\" in lingua indonesiana.')">lahar</a>

    ma se noi vogliamo i doppi apici, dobbiamo scambiare tutto il nostro uso di quelli singoli con gli apici doppi, come nell'esempio:

    <li><A HREF="#" onClick='alert("Un lahar e\' una colata di fango generata dai fianchi di un vulcano. Alcuni sostengono provenga dalla frase \"Attenzione!\" in lingua indonesiana.")'>lahar</a>

  3. Usa quest'ultimo esempio per modificare il codice HTML che hai scritto nel punto numero 2.
  4. Salva ed Aggiorna nel tuo programma. Confronta il tuo risultato con questo esempio di come la pagina della terminologia dovrebbe apparire.
C'e' un piccolo problema con la pagina web del glossario che abbiamo appena modificato. Se si si fa click solo su un link che usa questa nuova JavaScript feature, si viene spostati ad un'altra web page e poi si torna, si puo' notare come tutti questi link in elenco siano segnati con il colore dei link gia' visitati, dal momento che il browser vede che tutti questi si riferiscono allo stesso URL (<a href=#....>).

Ora modificheremo questo documento HTML in modo che ogni link attivato con JavaScript abbia un unico stato.

  1. Apri il file term.html nel tuo text editor.
  2. Modifica la parte superiore della pagina HTML (fino alla fine del primo elenco di <ul>...</ul>) in modo che si legga:

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
    <html>
    <head>
    <title>Glossario</title>
    </head>
    <BODY BGCOLOR=#000000 TEXT=#FFFFCC LINK=#33CCFF VLINK=#FF6666>
    <A NAME="term1"></A>
    <A NAME="term2"></A>
    <A NAME="term3"></A>
    <A NAME="term4"></A>
    <A NAME="term5"></A>
    <H5>Volcano Web /
    <A HREF="index1.html">Indice</A> /
    <A HREF="intro.html">indietro</A> /
    <A HREF="usa.html">avanti</A></H5>
    <h2 align=center>Glossario</h2>
    Lo studio dei vulcani, o <tt>Vulcanologia</tt>, comprende alcuni strani termini. Quanti ne conosci?
    <ul>
    <li><A HREF="#term1" onClick="alert('Si definisce caldera una depressione del terreno di forma circolare causata da una eruzione di un corpo magmatico vicino e superficiale.')">caldera</A>
    <li><A HREF="#term2" onClick="alert('Si definisce vescicolarita\' la misura di quanto il volume di una roccia sia occupato da camere di aria.')">vescicolarita'</a>
    <li><A HREF="#term3" onClick="alert('Si definisce pahoehoe un tipo di lava basaltica che deriva da una parola hawaiiana per liscio e nodoso.')">pahoehoe</a>
    <li><A HREF="#term4" onClick="alert('La reologia e\' lo studio del modo in cui i materiali si deformano.')">reologia</a>
    <li><A HREF="#term5" onClick='alert("Un lahar e\' una colata di fango generata dai fianchi di un vulcano. Alcuni sostengono provenga dalla frase \"Attenzione!\" in lingua indonesiana.")'>lahar</a>
    </ul>

    NOTA: Ogni link JavaScript-enabled ora riferisce ad una unica ancora che si trova nelle primissime righe della web page.
  3. Salva ed Aggiorna nel tuo web browser. Confronta il risultato a questo esempio di come la pagina del glossario dovrebbe apparire.

Alcuni MouseOver Action!

Per adesso abbiamo imparato ad usare il codice JavaScript in modo che agisca quando un visitatore preme su un link ipertestuale. Possiamo aggiungere un'altra caratteristica ai nostri link in modo che facciano qualche cosa anche solo quando l'utente muove il suo mouse sul testo del collegamento (senza farci click sopra).

Il comportamento normale per questa action e' che il web browser visualizzi nella barra di stato (l'area solitamente in fondo, nell'angolo sinistro della finestra del browser) l'URL a cui il link conduce, come in questo link al nostro tutorial.

Con JavaScript, si possono creare messaggi personalizzati che sono visualizzati al posto dell'URL a cui punta il link, come questo secondo link al nostro tutorial. Cliccando su questi link, questi faranno quello che ci si aspetta da loro: ci trasferiranno al web site specificato nell'URL del link.

La formattazione JavaScript per l'aggiunta di questa feature e':

<a href="xxxx.html" onMouseOver="window.status='testo del messaggio personalizzato'; return true">testo del link</a>

L'evento JavaScript che causa il messaggio personalizzato e' onMouseOver="...", dando al link piu' o meno questo significato: "quando il mouse e' sopra di me, fai questo". Ci sono due diversi JavaScript function statements qui, separati da un punto e virgola (;)

  1. window.status='testo del messaggio personalizzato';
    Questo e' il comando JavaScript che dice, "Visualizza nella barra di stato tutto quello che e' posto tra gli apici".

  2. return true
    Questo e' un "messaggio" che deve essere rimandato indietro al browser per fargli sapere che noi abbiamo fatto. Non possiamo spiegare esattamente perche' questo sia necessario, ma noi possiamo dirti che se non viene incluso, il tutto non funziona!
Ora, noi aggiungeremo un messaggio MouseOver ai link che abbiamo modificato per la pagina web della terminologia che produce i messaggi di alert.
  1. Apri il file term.html nel tuo text editor.
  2. Modifica il primo elenco di <ul>..</ul> in modo che si legga:

    <ul>
    <li><A HREF="#term1" onClick="alert('Si definisce caldera una depressione del terreno di forma circolare causata da una eruzione di un corpo magmatico vicino e superficiale.')" onMouseOver="window.status='che cosa e\' una caldera?'; return true">caldera</A>
    <li><A HREF="#term2" onClick="alert('Si definisce vescicolarita\' la misura di quanto il volume di una roccia sia occupato da camere di aria.')" onMouseOver="window.status='cos\'e\' la vescicolarita\'?'; return true">vescicolarita'</a>
    <li><A HREF="#term3" onClick="alert('Si definisce pahoehoe un tipo di lava basaltica che deriva da una parola hawaiiana per liscio e nodoso.')" onMouseOver="window.status='cos\'e\' una pahoehoe?'; return true">pahoehoe</a>
    <li><A HREF="#term4" onClick="alert('La reologia e\' lo studio del modo in cui i materiali si deformano.')" onMouseOver="window.status='cos\'e\' la reologia?'; return true">reologia</a>
    <li><A HREF="#term5" onClick='alert("Un lahar e\' una colata di fango generata dai fianchi di un vulcano. Alcuni sostengono provenga dalla frase \"Attenzione!\" in lingua indonesiana.")' onMouseOver="window.status='Cos\'e\' un lahar?'; return true">lahar</a>
    </ul>

  3. Mentre stiamo aggiungendo questa feature, potrebbe essere d'aiuto aggiungere dei messaggi MouseOver alle "aree calde" della mappa che abbiamo creato per questa pagina alla lezione 23. Modifica quindi il codice HTML tra i tags <map>...</map> in modo che si legga:

    <map name="volcmap">
    <area shape="rect"
    href="http://volcano.und.edu/vwdocs/frequent_questions/grp7/europe/question308.html" coords="48,46,204,153" onMouseOver="window.status='informazioni sui vulcani di tipo surtseiano'; return true">
    <area shape="rect" href="explode.html" coords="0,66,26,227" onMouseOver="window.status='descrizione della scala del potere esplosivo'; return true">
    <area shape="rect" href="height.html" coords="95,283,378,309" onMouseOver="window.status='descrizione della scala dell'altezza'; return true">
    <area shape="rect" href="http://www.geo.mtu.edu/volcanoes/pinatubo/" coords="321,154,468,261" onMouseOver="window.status='informazioni sui vulcani di tipo pliniano'; return true">
    <area shape="rect" href="http://stromboli.net/" coords="172,155,318,274" onMouseOver="window.status='informazioni sui vulcani di tipo stromboliano'; return true">
    <area shape="rect" href="http://hvo.wr.usgs.gov/volcanowatch/" coords="36,155,168,276" onMouseOver="window.status='informazioni sui vulcani di tipo hawaiiano'; return true">
    <area shape="rect" href="http://www.geo.mtu.edu/volcanoes/santamaria/" coords="90,3,343,123" onMouseOver="window.status='informazioni sui vulcani di tipo preto-pliniano'; return true">
    </map>

    Se il tuo codice JavaScript e' in funzione, nel momento in cui tu muovi il mouse sopra l'immagine sulla pagina, la barra di stato visualizzera' il messaggio personalizzato che descrive il link, piuttosto che l'URL.

    NOTA: Al momento attuale, Aprile 1999, questa tecnica dell'uso di onMouseOver all'interno dei tag <map>...</map> non funziona nei Microsoft Internet Explorer 5.0 web browser.

    Questa puo' essere una feature efficace sul tuo web site, ma tienti bene in mente che a volte e' piu' utile per il visitatore sapere a quale URL conduce il link (forse in questo modo egli puo' indovinarel'organizzazione che sta alla base del web site dal suo URL)-- il messaggio onMouseOver nasconde quest'informazione. Usalo quando ha un senso all'interno del tuo web site design e quando puoi determinare che questo sia quanto e' necessario a quanti esplorano il tuo sito.

Controlla il Tuo Lavoro

Confronta la tua pagina web con un esempio di come il documento dovrebbe apparire. Se la tua pagina web fosse diversa dall'esempio, o se i link non dovessero funzionare correttamente, controlla il testo che hai digitato nell'editor di testo. Nota che JavaScript e' veramente sensibile agli errori topografici-- un apice o un punto e virgola mancanti possono rovinare un'intera pagina!

Verifica

Argomenti di verifica per questa lezione:
  1. Come si procede per fare in modo che un link visualizzi un messaggio di alert piuttosto che connettere ad un'altra web page?
  2. Come si scrive un comando di alert JavaScript dove il testo includa apici o doppi apici?
  3. Cos'e' un evento MouseOver?
  4. Come si fa a generare messaggi in una barra di stato nel momento in cui il visitatore della web page muove il mouse sopra i diversi link?

Pratica Indipendente

Aggiungi alcuni messaggi di alert JavaScript e comandi MouseOver ad alcuni dei link ipertestuali delle tue pagine web personali.

Puoi pensare ad un modo con cui un MouseOver possa generare un messaggio di alert?


Prossimamente....

Seconda Dose... JavaScript che crea contenuti personalizzati e footer dinamici.
VAI A.... | Indice Delle Lezioni | indietro: "JavaScript: Intro" | avanti: "JavaScript: Contenuti Dinamici" |

Writing HTML: Lezione 27a: Una Leggera Dose di JavaScript : Alert e Rollover
©1994-1999 Maricopa Center for Learning and Instruction (MCLI)
Maricopa Community Colleges

The Internet Connection at MCLI is Alan Levine --}
Comments to mailto:alan.levine@domail.maricopa.edu?subject=Writing HTML