Esploriamo Javascript! 1 di Ivan Venuti



Похожие документы
Esercizi di JavaScript

Il linguaggio HTML - Parte 4

UN TOPO SFUGGENTE. CoderDOJO su Javascript - Trento. Augusto Ciuffoletti. 26 maggio 2015

Siti interattivi e dinamici. in poche pagine

MANUALE D USO DELLA PIATTAFORMA ITCMS

INTERNET EXPLORER Guida introduttiva CAPITOLO 1 Fig. 1

Manuale scritto da Fuso Federico 4 A Anno scolastico 2011/2012 Parte 1

lo PERSONALIZZARE LA FINESTRA DI WORD 2000

Il calendario di Windows Vista

Guida Joomla. di: Alessandro Rossi, Flavio Copes

Settaggio impostazioni tema. Cliccando nuovamente su aspetto e poi su personalizza si avrà modo di configurare la struttura dinamica della template.

Avvio di Internet ed esplorazione di pagine Web.

Scuola Digitale. Manuale utente. Copyright 2014, Axios Italia

FPf per Windows 3.1. Guida all uso

Il sistema C.R.M. / E.R.M.

Gestire immagini e grafica con Word 2010

Guida all uso di Java Diagrammi ER

Figura 54. Visualizza anteprima nel browser

COME ELIMINARE PARTI DEL TEMPLATE IN PAGINE SINGOLE

Appunti sugli Elaboratori di Testo. Introduzione. D. Gubiani. 19 Luglio 2005

STAMPA UNIONE DI WORD

Il sofware è inoltre completato da una funzione di calendario che consente di impostare in modo semplice ed intuitivo i vari appuntamenti.

MAUALE PIATTAFORMA MOODLE

IL MIO PRIMO SITO: NEWS

Come costruire una presentazione. PowerPoint 1. ! PowerPoint permette la realizzazione di presentazioni video ipertestuali, animate e multimediali

Capitolo 4 Pianificazione e Sviluppo di Web Part

BREVE MANUALE DI SOPRAVVIVENZA A WINDOWS 8

JAVASCRIPT. Tale file è associato alla pagina web mediante il tag <script> inserito nella sezione <head> con la seguente sintassi:

LABORATORIO PER IL DESIGN DELLE INTERFACCE PEGORARO ALESSANDRO CASSERO.IT MANUALE DI AGGIORNAMENTO, MANUTENZIONE E USO DEL SITO

File, Modifica, Visualizza, Strumenti, Messaggio

Manuale per i redattori del sito web OttoInforma

Capitolo 3. L applicazione Java Diagrammi ER. 3.1 La finestra iniziale, il menu e la barra pulsanti

Client - Server. Client Web: il BROWSER

Sistema operativo. Sommario. Sistema operativo...1 Browser...1. Convenzioni adottate

Strutturazione logica dei dati: i file

Che cos'è un modulo? pulsanti di opzione caselle di controllo caselle di riepilogo

SIFORM MANUALE VOUCHER FORMATIVI A DOMANDA AZIENDALE

Creare un sito Multilingua con Joomla 1.6

Comandi principali del linguaggio HTML (Hyper Text Markup Language)

Uso di JUnit. Fondamenti di informatica Oggetti e Java. JUnit. Luca Cabibbo. ottobre 2012

Olga Scotti. Basi di Informatica. File e cartelle

CMS MUSEO&WEB. Mappe grafiche. Andrea Tempera (OTEBAC) 12 aprile 2010

Per effettuare la stampa di una cartella di lavoro si accede al comando. Stampa dal menu File o si utilizza il pulsante omonimo sulla barra

MANUALE D'USO DEL PROGRAMMA IMMOBIPHONE

GUIDA UTENTE PRIMA NOTA SEMPLICE

[Dimensionare la pagina-creare le tabelle-formattare le tabelle-formattare la pagina

GRUPPO CAMBIELLI. Posta elettronica (Webmail) Consigli di utilizzo

Excel. A cura di Luigi Labonia. luigi.lab@libero.it

Guida per la registrazione alla piattaforma di Gestione dei Corsi per il Consulente Tecnico Telematico

Come modificare la propria Home Page e gli elementi correlati

Manuale servizio Webmail. Introduzione alle Webmail...2 Webmail classica (SquirrelMail)...3 Webmail nuova (RoundCube)...8

A tal fine il presente documento si compone di tre distinte sezioni:

LA GESTIONE DELLE VISITE CLIENTI VIA WEB

Presentazione della pratica online

Cominciamo dalla barra multifunzione, ossia la struttura a schede che ha sostituito la barra dei menu e la barra delle icone (Figura 1).

Esercitazione n. 10: HTML e primo sito web

GENERAZIONE PREVENTIVI

Word è un elaboratore di testi in grado di combinare il testo con immagini, fogli di lavoro e

Biblioteca di Cervia NOZIONI BASE DI INFORMATICA

Innanzitutto andiamo sul sito ed eseguiamo il download del programma cliccando su Download Dropbox.

INDICE. Accesso al Portale Pag. 2. Nuovo preventivo - Ricerca articoli. Pag. 4. Nuovo preventivo Ordine. Pag. 6. Modificare il preventivo. Pag.

Esame di Informatica CHE COS È UN FOGLIO ELETTRONICO CHE COS È UN FOGLIO ELETTRONICO CHE COS È UN FOGLIO ELETTRONICO. Facoltà di Scienze Motorie

Office 2007 Lezione 08

I link o collegamenti ipertestuali

INDICE. IL CENTRO ATTIVITÀ... 3 I MODULI... 6 IL MY CLOUD ANASTASIS... 8 Il menu IMPORTA... 8 I COMANDI DEL DOCUMENTO...

CAPITOLO 1 PREREQUISITI DI INSTALLAZIONE SOFTWARE RICAMBI CAPITOLO 2 PROCEDURA

Linguaggio HTML (2) Attributi di <FONT> Per variare lo stile di carattere rispetto al default, si possono utilizzare tre attributi:

ammesso solo con il tuo consenso. Le modifiche apportate hanno lo scopo di semplificare il controllo di quali

MANUALE PER CONSULTARE LA RASSEGNA STAMPA VIA WEB

Per chi ha la Virtual Machine: avviare Grass da terminale, andando su Applicazioni Accessori Terminale e scrivere grass

PIANO DI TUTELA DELLE ACQUE DELLA SICILIA (di cui all'art. 121 del Decreto Legislativo 3 aprile 2006, n 152)

Corso base di informatica

Dropbox di classe. É un servizio internet fornito gratuitamente (funzioni base).

Indice generale. Il BACK-END...3 COME CONFIGURARE JOOMLA...4 Sito...4 Locale...5 Contenuti...5

Software Gestionale Politiche Giovanili

Windows. Cos è I componenti principali Le funzioni essenziali. 1

Database 1 biblioteca universitaria. Testo del quesito

Istruzioni per l installazione del software per gli esami ICoNExam (Aggiornate al 15/01/2014)

Sistema per scambi/cessioni di Gas al Punto di Scambio Virtuale

Guida alla registrazione on-line di un DataLogger

L interfaccia utente di Office 2010

TaleteWeb Come navigare nella home page dell applicazione

Registratori di Cassa

Questa guida è realizzata per spiegarvi e semplificarvi l utilizzo del nostro nuovo sito E Commerce dedicato ad Alternatori e Motorini di avviamento.

Convertitori numerici in Excel

CTVClient. Dopo aver inserito correttamente i dati, verrà visualizzata la schermata del tabellone con i giorni e le ore.

Aprire, preparare un documento da utilizzare come documento principale per una stampa unione.

MANUALE B2B PER GLI AGENTI

ColorSplitter. La separazione automatica dei colori di Colibri.. Perché ColorSplitter? Come opera ColorSplitter?

PROCEDURA INVENTARIO DI MAGAZZINO di FINE ESERCIZIO (dalla versione 3.2.0)

MANUALE PORTALE UTENTE IMPRENDITORE

STRUMENTI PER L ACCESSIBILITÀ DEL COMPUTER.

Esempio di esecuzione di una pagina JSP: Il client chiede la pagina: sdfonline.unimc.it/info/modulo.jsp;

istruzioni per l uso

Stampa Unione per lettere tipo

Schede ADI ADP ADEM Prestazioni aggiuntive MMG. - Manuale - Data Solution Provider s.r.l.

On-line Corsi d Informatica sul web

MS Word per la TESI. Barra degli strumenti. Rientri. Formattare un paragrafo. Cos è? Barra degli strumenti

Транскрипт:

Esploriamo Javascript! 1 di Ivan Venuti L Html è stato pensato (e creato) per presentare contenuti statici che, visualizzati da utenti diversi, diano sempre lo stesso risultato. Per sopperire a questa limitazione sono possibili tre strade: 1. generare la pagina in modo personalizzato ogni volta che vi si accede. In questo caso la pagina di per sé rimane Html standard. È il Web Server (ovvero il computer che genera la pagina) a generarla personalizzata. Per questo le tecnologie usate sono chiamate lato Server (server side). Tipico esempio sono i programmi che permettono di leggere la posta elettronica attraverso il navigatore (browser): il contenuto viene generato in modo diverso per ogni utente e cambia quando arrivano nuovi messaggi. 2. Generare una pagina Html che contenga al suo interno elementi dinamici, che permettono di personalizzare la pagina dopo che è stata letta dal navigatore (browser). Per farlo si usano le tecnologie Javascript e Css (la cui accoppiata viene indicata come Html dinamico o Dhtml). È una tecnologia che, avvenendo sul navigatore, viene chiamata lato cliente (client side). La visualizzazione della pagina viene cambiata senza ricaricare la pagina. 3. Uso di tecnologie sia lato server che lato cliente (combinando le tecnologie appena illustrate). La programmazione lato server è particolarmente complessa e necessita di nozioni avanzate di programmazione, mentre la programmazione lato cliente è adatta anche a persone con poca esperienza di programmazione. Questo articolo illustrerà piccoli (ma significativi) esempi di codice Javascript per ottenere effetti dinamici nelle pagine Html. Javascript Il linguaggio Javascript è un linguaggio di programmazione interpretato e ad oggetti. Interpretato significa che è possibile scrivere le istruzioni in un file di testo (quindi anche in una pagina Html) e che esse, se corrette, vengono eseguite da un programma apposito senza dover essere tradotte in un linguaggio comprensibile all elaboratore. Il programma che esegue la traduzione è lo stesso navigatore. Il codice Javascript viene quindi inserito in una pagina Html all interno di appositi tag: <SCRIPT> codice </SCRIPT> In questo modo informiamo il navigatore che, quello che incontrerà all interno del tag <SCRIPT>, non è semplice testo da visualizzare, ma è del codice Javascript che va interpretato. Ad oggetti significa che gli elementi sono oggetti, a cui sono associate delle proprietà. La notazione puntata permette di associare le proprietà ai loro oggetti. Per esempio: quadro1.bordo.colore = rosso, indica che si assegna rosso alla proprietà colore dell oggetto bordo dell oggetto quadro1. 1 Questo articolo è stato pubblicato su Inter.Net N. 71, Settembre 2001 edito dalla Edizioni Systems Comunicazioni S.r.l.; quest'ultima detiene i diritti di pubblicazione e utilizzazione economica di quest'articolo; l'autore è stato autorizzato a renderlo pubblico sul proprio sito Web personale. Articolo liberamente scaricabile dal sito web dell'autore: http://ivenuti.altervista.org 1/11

Ogni navigatore mette a disposizione oggetti predefiniti che ne modellano alcune caratteristiche. Questo significa anche che navigatori di tipo diverso mettono a disposizione oggetti diversi, creando un problema di compatibilità. Per esempio possiamo scrivere sulla barra di stato della finestra corrente del navigatore attraverso la proprietà status dell oggetto window: Il risultato è visibile in Figura 1. window.status = Esempio banale Figura 1: Proprietà status su oggetto window. Altre volte è necessario accedere ai metodi, cioè alle funzionalità, dell oggetto. Per farlo si usa la stessa notazione puntata, ma l ultimo termine contiene delle parentesi tonde, ad indicare che è un metodo e non una proprietà. Dentro tali parentesi si possono scrivere i valori dei parametri del metodo (se esistono). Un esempio è il metodo alert(): visualizza la stringa che gli viene passata. Per cui l istruzione alert( Avviso importante ) dà l avviso mostrato in Figura 2. Figura 2: Esempio di alert Esempi di base ed avanzati Alcuni script più avanzati ci permettono di arricchire le pagine con interessanti effetti grafici. Il primo è il cosiddetto effetto roll-over (rotolamento): quando si passa il mouse sopra una immagine, essa cambia alcune caratteristiche (per esempio colore di fondo). Il principio è molto semplice: bisogna riconoscere quando il puntatore del mouse è posizionato Articolo liberamente scaricabile dal sito web dell'autore: http://ivenuti.altervista.org 2/11

sopra l immagine interessata e far caricare una nuova immagine al posto di quella originale. Per prima cosa è necessario creare le due immagini (Figura 3). A questo punto si inserisce l immagine di base con il solito tag: <img src= esempio1.jpg > Figura 3 Le immagini (esempio1.jpg ed esempio2.jpg) che contribuiscono a creare l effetto roll-over. Javascript permette di intercettare degli eventi, come lo spostamento del mouse o il click di esso su un elemento del documento. L evento che interessa è onmouseover. Quando questo viene intercettato facciamo cambiare il sorgente dell immagine, in questo modo: <img src= esempio1.jpg onmouseover= document.images[0].src= esempio2.jpg > Testando il risultato, la pagina carica esempio1.jpg di default e, quando ci si posiziona sopra con il mouse, essa cambia e viene caricata esempio2.jpg. A questo punto si vuole completare l effetto di roll-over ricaricando l immagine originaria quando il cursore si sposta fuori dall immagine: <img src= esempio1.jpg onmouseover= document.images[0].src= esempio2.jpg onmouseout= document.images[0].src= esempio1.jpg > È interessante notare come si accede all oggetto immagine: attraverso document.images[0]. document è l oggetto che rappresenta tutto il contenuto della pagina Html, images contiene tutte le immagini del documento: è un vettore, cioè un insieme ordinato di oggetti a cui si accede attraverso un numero (0 è la prima posizione). Si pensi ad un oggetto come a un cassetto dove ci sono delle cose, e un vettore come ad una cassettiera, in cui possiamo riferirci ai vari cassetti con un numero (0 per il primo, 1 per il secondo e così via). Riferirsi alle immagini in questo modo è scomodo: se si inseriscono altre immagini prima dell immagine in esame, è necessario modificare gli indici del vettore, in quanto la sua posizione relativa cambia. Per ovviare a questo inconveniente è possibile dare un nome alle varie immagini. Estendiamo l esempio di partenza in modo da avere un menu con 3 elementi a cui ci si riferisce per nome (Listato 1). Il risultato della pagina Html è visibile in Figura 4. Articolo liberamente scaricabile dal sito web dell'autore: http://ivenuti.altervista.org 3/11

Listato 1 <html> <head> </head> <body> <img src="esempio1.jpg" name="esempio" onmouseover="document.esempio.src='esempio2.jpg'" onmouseout="document.esempio.src='esempio1.jpg'"> <img src="home1.jpg" name="home" onmouseover="document.home.src='home2.jpg'" onmouseout="document.home.src='home1.jpg'"> <img src="link1.jpg" name="link" onmouseover="document.link.src='link2.jpg'" onmouseout="document.link.src='link1.jpg'"> </body> </html> Figura 4 L esempio di partenza può essere esteso ulteriormente in modo che, oltre all effetto roll-over sull immagine, possiamo anche visualizzare un immagine diversa in un altra posizione. Quest ultima potrebbe essere, per esempio, un commento all immagine su cui è posizionato il cursore del mouse. Il Listato 2 presenta la realizzazione di questa idea, il cui risultato è visibile nella Figura 5. Articolo liberamente scaricabile dal sito web dell'autore: http://ivenuti.altervista.org 4/11

Listato 2 <html> <head> <script> function cambia(nome, numero) { var obj = eval("document."+nome); obj.src = nome+numero+".jpg"; if (numero==2) document.testo.src = "t"+nome+".gif"; else document.testo.src="tbianco.gif"; } </script> </head> <body> <img src="esempio1.jpg" name="esempio" onmouseover="cambia('esempio',2)" onmouseout="cambia('esempio',1)"> <img src="home1.jpg" name="home" onmouseover="cambia('home',2)" onmouseout="cambia('home',1)"> <img src="link1.jpg" name="link" onmouseover="cambia('link',2)" onmouseout="cambia('link',1)"> <table width="100%"> <tr><td align="center"> <img src="tbianco.gif" name="testo"> </td></tr> </body> </html> Articolo liberamente scaricabile dal sito web dell'autore: http://ivenuti.altervista.org 5/11

Figura 5 Esempio di roll-over composto Nel Listato 2 si è fatto uso di una nuova funzione predefinita: eval(). Essa ritorna l oggetto descritto dalla stringa passata come argomento. Ora cerchiamo di realizzare script che possano essere usati per cambiare i colori del testo di un documento o il colore dello sfondo. Per farlo si usano due proprietà dell oggetto document: bgcolor ed fgcolor. Se vogliamo cambiare il colore dello sfondo in rosso si può usare l istruzione: document.bgcolor = Red o equivalentemente (usando la notazione RGB per i colori) document.bgcolor= #FF0000 Da queste istruzioni creiamo uno strumento che permetta di personalizzare il colore dello sfondo o del testo di una qualunque pagina. Questo può essere utile, per esempio, a chi sviluppa pagine Web per testare l impatto visivo dei diversi colori su una pagina. Il risultato è riportato in Figura 6. Per realizzarlo è necessario modificare il file Html che si vuole personalizzare inserendo, nella sezione di testa (racchiusa tra <head> ed </head>), il seguente script: Articolo liberamente scaricabile dal sito web dell'autore: http://ivenuti.altervista.org 6/11

<script> function apri(pagina) { nuova = window.open(pagina+".html",pagina,"toolbar=no, + location=no,directories=no,status=no,menubar=no,"+ "scrollbars=no,resizable=yes,width=250,height=35") } </script> Tale script apre una nuova finestra con la pagina specificata e con le proprietà indicate. Inoltre bisogna modificare il tag <body> in questo modo: <body onload="apri('fondo'); apri('testo');"> Così facendo all apertura del documento verranno aperte due nuove finestre contenenti ciascuna il codice che, in parte, è presentato nel Listato 3 (tale codice è identico a meno del titolo del documento e della funzione scegli, che vale window.opener.document.bgcolor = colorname; nella pagina che modifica il colore dello sfondo, mentre vale window.opener.document.fgcolor = colorname; nella pagina che modifica il colore del testo). Con window.opener rappresenta la finestra che ha aperto il documento corrente. Figura 6 Articolo liberamente scaricabile dal sito web dell'autore: http://ivenuti.altervista.org 7/11

Il Listato 3 è in gran parte Html standard e le funzioni Javascript usate sono davvero minime. È definita una funzione, scegli(colorname), che riceve come parametro un colore e lo assegna al colore dello sfondo del documento oppure, nel caso del listato del tutto equivalente a meno di questa istruzione, al colore del testo. Questa funzione viene invocata intercettando l evento onclick sulle ancore (link) dei colori. <a href="#" onclick="scegli('white'); return false;">-</a> Come si nota oltre a invocare la funzione da noi definita c è un return false che impedisce al navigatore di seguire effettivamente l ancora e ricaricare la pagina. Ma perché inserire l ancora se poi essa non viene usata? Ciò è necessario perché l evento onclick non è associabile a tutti gli elementi di una pagina Html, ma solo ad alcuni: l ancora è uno di questi, mentre non lo sono gli elementi testuali o elementi strutturali di una tabella. Il problema della compatibilità tra navigatori diversi diventa evidente con l esempio appena visto. Infatti esso funziona correttamente con Internet Explorer, mentre fallisce nel selezionare il colore del testo con Netscape. Il motivo è che quest ultimo non riconosce la proprietà fgcolor. Articolo liberamente scaricabile dal sito web dell'autore: http://ivenuti.altervista.org 8/11

Listato 3 <html> <head> <Title>Colore Fondo</title> <script language="javascript"> </script> function scegli(colorname) { window.opener.document.bgcolor = colorname; } </head> <body> <table border=1> <tr> <td width="10" bgcolor="white"> <a href="#" onclick="scegli('white'); return false;">-</a> </td> <td width="10" bgcolor="yellow"> <a href="#" onclick="scegli('yellow'); return false;">-</a> </td> <td width="10" bgcolor="red"> <a href="#" onclick="scegli('red'); return false;">-</a> </td> <!-- in modo simile c e il codice per i colori Purple, Blue, Magenta, Cyano, Green, LightBlue, Brown --> <td width="10" bgcolor="gray"> <a href="#" onclick="scegli('gray'); return false;">-</a> </td> <td width="10" bgcolor="black"> <a href="#" onclick="scegli('black'); return false;">-</a> </td> </tr> </table> </body> </html> Supponiamo di avere un documento (documento A) che punta ad una pagina con molto testo e con molte ancore a parti di testo locali (documento X). La situazione è quella presentata in Figura 7. Articolo liberamente scaricabile dal sito web dell'autore: http://ivenuti.altervista.org 9/11

Figura 7 Chi conosce l Html sa che le ancore locali permettono una facile navigazione all interno del documento senza doverlo ricaricare ogni volta. Una volta navigato localmente si può avere la necessità di ritornare al documento di origine. Dalla situazione presentata basta mettere una ancora che punta al documento A. Nel caso si sia nella situazione presentata in Figura 8, non è così semplice. Figura 8 Infatti non sappiamo se siamo arrivati dal documento A o dal documento B. L unica strada è quella di ritornare al documento di origine con il tasto Indietro (back) del navigatore. Ed ecco Articolo liberamente scaricabile dal sito web dell'autore: http://ivenuti.altervista.org 10/11

l inconveniente: se abbiamo navigato localmente, dobbiamo premere il tasto Indietro tante volte quanti sono le ancore seguite. Questa situazione, chiaramente poco desiderabile, può essere risolta in Javascript in questo modo: si tiene traccia del numero di volte che abbiamo seguito le ancore locali e, quando si vuole ritornare al documento di origine, si esegue esattamente quel numero di salti all indietro. Il risultato è riportato nel Listato 4. Come si vede è necessario definire una variabile globale numero e una funzione che incrementa tale variabile globale (funzione incrementa()). Ogni ancora locale invocherà la funzione incrementa(). Infine, nella ancora al documento di origine, si mette history.go(-numero). L oggetto history memorizza le pagine precedenti, e con la funzione go(-1) si simula il comportamento del tasto Indietro, con go(-2) si simula la pressione di due volte il tasto Indietro, e così via. Listato 4 <HTML> <HEAD> <script> var numero=1; function incrementa() { numero++; return true; } </script> </HEAD> <BODY> <a href="#locale1" onclick="incrementa()">vai a locale 1</a> <a href="#locale2" onclick="incrementa()">vai a locale 2</a> <a href= # onclick= history.go(-numero); return false >Pagina iniziale</a> </BODY> </HTML> Conclusioni Gli esempi visti vanno a modificare le proprietà dell Html standard. È possibile andare anche a intervenire sugli stili nel caso in cui la pagina contenga dei Css (Cascade Style Sheets). Javascript permette di cambiare le proprietà del documento corrente, ma non solo: in presenza di un frameset, si può intervenire anche sui documenti collegati. Insomma, gli effetti ottenibili sono innumerevoli. Su Internet è possibile trovare ottimi esempi di script pronti per essere usati. Ivan Venuti. Laureato in Scienze dell informazione, programmatore e docente di corsi di informatica, si occupa di tecnologie Object Oriented e problematiche legate al Web. Articolo liberamente scaricabile dal sito web dell'autore: http://ivenuti.altervista.org 11/11