JavaScript - 4. Modello ad oggetti tradizionale. L ambiente del web browser 1



Documenti analoghi
JavaScript - 2. Ambiente di esecuzione Javascript

Javascript. Linguaggi Corso M-Z - Laurea in Ingegneria Informatica A.A lezione 14 -

Strumenti a disposizione

JavaScript Gestione Eventi. Prof. Francesco Accarino IIS Atiero Spinelli Sesto San Giovanni via leopardi 132

La pagina Web modulo.html utilizza le specifiche di stile descritte nel foglio feedback.css.

HTML HTML. HyperText Markup Language. Struttura di un documento. Gli elementi essenziali di un documento HTML sono i seguenti TAG: <HTML>...

Form Editor. Dove NomeProfilo è personalizzabile.

Esercizi di JavaScript

HTML. Usare il seguente HTML per i primi tre esercizi (che, si noti, al momento restituisce un errore JavaScript):

Laboratorio Progettazione Web PHP e FORMs HTML. Andrea Marchetti IIT-CNR andrea.marchetti@iit.cnr.ita 2013/2014

DATABASE IN RETE E PROGRAMMAZIONE LATO SERVER

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

19. LA PROGRAMMAZIONE LATO SERVER

Siti interattivi e dinamici. in poche pagine

Dott.ssa Maria Vittoria Avolio. Dott.ssa Adriana Pietramala

Web Programming. Lezione 4: Cookie e Sessioni. Giulio Rossetti 14/04/2011. Guru@Work

1 Creazione pagine web utente

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

Metodologie Informatiche applicate al Turismo

A. Carullo Introduzione a Visual Basic. Introduzione a

Eleonline gestione dello spoglio elettorale

HTML 6. I frame. Sintassi di base. I frame e DOCTYPE FRAME. ...head... <FRAMESET lista_attributi> <FRAME SRC= URL lista_attributi>

Il linguaggio HTML - Parte 3

Guida all uso di Java Diagrammi ER

Guida alla procedura di inserimento materiale didattico sui minisiti degli insegnamenti

E possibile modificare la lingua dei testi dell interfaccia utente, se in inglese o in italiano, dal menu [Tools

<?php include './include/page.php';

Metodologie Informatiche Applicate al Turismo

Guida al sistema. Dott. Enea Belloni

I Tag dell html. Parte quarta

Modulo. Programmiamo in Pascal. Unità didattiche COSA IMPAREREMO...

Lezione 6: Form 27/04/2012

Scuola Digitale. Manuale utente. Copyright 2014, Axios Italia

Manuale per i redattori del sito web OttoInforma

Client - Server. Client Web: il BROWSER

Guida alla registrazione on-line di un DataLogger

Esploriamo Javascript! 1 di Ivan Venuti

NAVIGAORA HOTSPOT. Manuale utente per la configurazione

MODULO 1 PARTE 3. Programmazione (scripting) server-side con PHP 3.c Cookies e sessioni. Goy - a.a. 2012/2013 Programmazione Web 1

Programmazione client-side: JavaScript

Il linguaggio HTML - Parte 4

Javascript. Politecnico di Milano Facoltà del Design Bovisa Elementi di Informatica e Reti di calcolatori

Integrazione InfiniteCRM - MailUp

Java Server Pages (JSP) JSP o Servlet? Java Server Pages (JSP) Java Server Pages Costituiscono un estensione della tecnologia delle servlet

Raggruppamenti Conti Movimenti

Introduzione a jquery

Forms. Commercio elettronico Registrazione di nuovi membri (organizzazioni non-profit) Ricerca di mercato (collezione di dati relativi a utenti)

Scaletta. Estensioni UML per il Web. Applicazioni web - 2. Applicazioni web. WAE: Web Application Extension for UML. «Client page»

1. Le macro in Access 2000/2003

Interazione con l utente : i moduli.

IL SISTEMA OPERATIVO IL SISTEMA OPERATIVO INTERFACCE TESTUALI INTERFACCE TESTUALI FUNZIONI DEL SISTEMA OPERATIVO INTERFACCE GRAFICHE

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

EasyPrint v4.15. Gadget e calendari. Manuale Utente

Appunti di Interazione Uomo Macchina Principi di progettazione per il web I wireframe

CdL in Medicina Veterinaria - STPA AA

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

ALBO PRETORIO WEB MANUALE DELLA PROCEDURA SOMMARIO. Uso del manuale. Informazioni generali. Interfaccia grafica. Guida di riferimento

Cap. 3. APERTURA NUOVO PROGETTO

Working Draft 0.5 (Telefonia)

I link e l'ipertestualità

La prima applicazione Java. Creazione di oggetti - 1. La prima applicazione Java: schema di esecuzione. Gianpaolo Cugola - Sistemi Informativi in Rete

SPORTELLO UNICO DELLE ATTIVITÀ PRODUTTIVE MANUALE OPERATIVO FUNZIONI DI PAGAMENTO ONLINE. Versione 05

TI.RA. Software per il Tiro Rapido Sportivo

Istruzioni per il pagamento con Carta di Credito

Introduzione. EMS è un sistema di raccolta e gestione ordini clienti. Si compone in due parti:

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

DOCENTI - guida web. 1 LOGIN E BACHECA.. Pag 2. 2 MODIFICARE LA PASSWORD... Pag CREARE UN ARTICOLO.. Pag INSERIRE LE FOTO.. Pag.

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

Guida all uso del Portale Web

PAGINA PRINCIPALE AREE TEMATICHE

Istruzioni Iscrizione Portale Stage e Placement per L Azienda

04/05/2011. Lezione 6: Form

Lavorare con le immagini

I piccoli Manuali di Gani a cura di Ganimedes.one CARICAMENTO DI IMMAGINI DAL PROPRIO PC SU CHATTA.IT

MANUALE D USO DELLA PIATTAFORMA ITCMS

Procedura SMS. Manuale Utente

Manuale riferimento Registro Classe v. 2.0

Alfa Layer S.r.l. Via Caboto, Torino ALFA PORTAL

Guida alla registrazione on-line di un NovaSun Log

MANUALE D'USO DEL PROGRAMMA IMMOBIPHONE

Guida WordPress. Indice. 1. Panoramica Accedi al pannello di controllo del sito La Bacheca di Wordpress

ESEMPI DI FORM (da

PULSANTI E PAGINE Sommario PULSANTI E PAGINE...1

Dipartimento di Ingegneria Civile e Ambientale TYPO 3 MANUALE UTENTE

Il software ideale per la gestione delle prenotazioni GUIDA UTENTE

X-Letter Gestione Newsletter (versione template o landing pages)

MANUALE REGISTRAZIONE UTENTE

Sistema per il monitoraggio della Spesa Sanitaria

SERVICE BROWSER. Versione 1.0

lo PERSONALIZZARE LA FINESTRA DI WORD 2000

FotoAeree. La Sardegna vista dall alto MANUALE PER L USO DELL APPLICAZIONE

Internet Architettura del www

SU Suap. IS357_03_01 Lettera aggiornamento SUAP vers Pagina 1 di 10

RELAZIONE DI PROGETTO DELL ESAME STRUMENTI PER APPLICAZIONI WEB

GUIDA ALL INVIO DEI FILE COL TFR AD INPDAP

BLOCK CALL Manuale utente Block Call Manuale Utente

Informatica. Prof. M. Colajanni Università di Modena Reggio Emilia

La sintassi di un DTD si basa principalmente sulla presenza di quattro dichiarazioni:

VERIFICA CORSO: MASTER DI PRIMO LIVELLO IN TECNOLOGIE DI SICUREZZA WEB E NETWORKING CODICE CORSO: B

Costruzione del layout in gino cms

Transcript:

JavaScript - 4 Modello ad oggetti tradizionale L ambiente del web browser 1 Per capire come funziona JavaScript lato client bisogna capire la struttura dell ambiente di programmazione offerto da un web browser Questo ambiente di programmazione possiede tre importanti caratteristiche 1. Esiste l oggetto Window che serve sia da oggetto GLOBALE sia da contesto globale di esecuzione di codice JavaScript lato client Prof. Carlo Blundo Tecnologie di Sviluppo per il WEB 2 1

L ambiente del web browser 2 2. Esiste una gerarchia di oggetti lato client ed il modello oggetto del documento (Document Object Model DOM) che forma una parte di essa 3. Esiste un modello di programmazione azionato dagli eventi (event-driven) Ad esempio, se si preme un bottone o si carica una pagina si genera un evento che può essere controllato Prof. Carlo Blundo Tecnologie di Sviluppo per il WEB 3 L oggetto Window 1 In JavaScript lato client l oggetto Window è un oggetto globale, esso rappresenta la finestra (o frame) che mostra il documento La finestra corrente è il contesto di esecuzione di JavaScript lato client Definisce varie proprietà e metodi che ci permettono di manipolare la finestra del browser Ha anche proprietà auto-referenziali window, this e self Definisce anche proprietà che si riferiscono ad altri oggetti importanti ad esempio Document referenziato tramite document Prof. Carlo Blundo Tecnologie di Sviluppo per il WEB 4 2

L oggetto Window 2 Dato che l oggetto Window è un oggetto globale, in JavaScript lato client, tutte le variabili globali sono definite come proprietà di Window Il seguente codice fa essenzialmente la stessa cosa var variabile = 14; window.variabile = 14; Possiamo omettere window per accedere alle proprietà di Window Ogni frame genera un suo oggetto Window Prof. Carlo Blundo Tecnologie di Sviluppo per il WEB 5 Nota L oggetto Window ha al suo interno varie proprietà tra cui document che è un istanza dell oggetto Document Document rappresenta il documento correntemente mostrato nella finestra del browser Maggiori dettagli su Window nelle prossime lezioni Prof. Carlo Blundo Tecnologie di Sviluppo per il WEB 6 3

Due modelli ad oggetti Un modello ad oggetti definisce l interfaccia ad i vari aspetti del browser e del documento che possono essere manipolati con JavaScript In JavaScript sono utilizzati due modelli ad oggetti Un modello ad oggetti del browser (BOM) Un modello ad oggetti del documento (DOM) Prof. Carlo Blundo Tecnologie di Sviluppo per il WEB 7 Il BOM Il BOM fornisce l accesso alle varie caratteristiche di un browser e dell ambiente in cui il browser è in esecuzione come: la finestra del browser stesso, le caratteristiche dello schermo, la cronologia del browser e così via windows.status = "benvenuto nella mia HP" if(screen.height == 600) history.back(); Vietato in alcuni browser Prof. Carlo Blundo Tecnologie di Sviluppo per il WEB 8 4

Il DOM Il DOM, d altra parte, fornisce l accesso al contenuto della finestra del browser, cioè al documento incluso i vari elementi HTML che vanno dalle ancore alle immagini così come il testo che può essere incluso da tali elementi document.images["miobanner"].src= "uno.gif"; document.modulo.testo.value = "Ciao!!!"; document.miobanner.src = "1.gif"; Prof. Carlo Blundo Tecnologie di Sviluppo per il WEB 9 Livelli di DOM DOM Level 0 Grossolanamente equivalente al modello a oggetti di NN3. Spesso è chiamato modello a oggetti classico o tradizionale, si accede solo a parte del documento DOM Level 1 Si può far riferimento a tutti gli elementi HTML. Fornisce la possibilità di manipolare i nodi del documento attraverso metodi dell oggetto document DOM Level 2 Si può far riferimento a proprietà CSS degli elementi Prof. Carlo Blundo Tecnologie di Sviluppo per il WEB 10 5

Gerarchia oggetti in Window self, window, parent, top, altre proprietà di Window navigator La finestra corrente frames[] location history document continua. screen Prof. Carlo Blundo Tecnologie di Sviluppo per il WEB 11 Gerarchia oggetti DOM livello 0 document forms[] ancors[] links[] images[] applets[] elements[] Button Checkbox FileUpload Hidden Password Radio Reset Select Submit Text options[] embeds[] TextArea Prof. Carlo Blundo Tecnologie di Sviluppo per il WEB 12 6

Ma cosa sono quegli array? L array images[] è un array contenente i riferimenti a tutte le immagini (oggetti di tipo Image) presenti nella pagina images[0] si riferisce all prima immagine presente nel documento images[images.length-1] si riferisce all ultima immagine del documento Gli elementi della gerarchia precedente che non sono array rappresentano degli oggetti Prof. Carlo Blundo Tecnologie di Sviluppo per il WEB 13 Accesso agli elementi del DOM Per accedere agli elementi del DOM usiamo la classica dot notation Ad esempio, con la seguente espressione parent.frames[0].document.forms[0].elements[3].options[2].text Accediamo, da un qualsiasi frame di un frameset, al testo (text) del terzo item di una lista di selezione (options[2]) che è il quarto elemento (elements[3]) della prima form (forms [0]) presente nel primo frame (frames[0]) del frameset Prof. Carlo Blundo Tecnologie di Sviluppo per il WEB 14 7

Accesso agli elementi HTML 1 Ci sono altri modi per accedere agli elementi di una pagina HTML Si usa sempre la dot notation, ma invece di indicare l indice dell elemento possiamo indicare il suo nome Ad ogni tag HTML possiamo associare un nome attraverso l attributo NAME In questo modo anche se la struttura del documento cambia, non dobbiamo modificare lo script Prof. Carlo Blundo Tecnologie di Sviluppo per il WEB 15 Esempi <IMG src="0.gif" name="banner" border="0"> document.images["banner"].src = "1.gif"; <FORM NAME="modulo"> <INPUT TYPE="TEXT" NAME="testo"> </FORM> document.forms["modulo"].elements["testo"].value = "Ecco un altro testo!!!"; Prof. Carlo Blundo Tecnologie di Sviluppo per il WEB 16 8

Accesso agli elementi HTML 2 Nel caso di immagini o moduli si può anche evitare di indicare il tipo di elemento (images[], forms[].elements[]) Basta dare dei nomi alle immagini, moduli, controlli dei moduli e, sempre tramite la dot notation accediamo all elemento Prof. Carlo Blundo Tecnologie di Sviluppo per il WEB 17 Esempi <FORM NAME="modulo"> <INPUT TYPE="TEXT" NAME="testo"> </FORM> document.modulo.testo.value = "Funziona!!!"; <DIV name="primo"> <P name="secondo"> <SPAN name="terzo"> <IMG SRC="0.gif" NAME="immagine" border="3"> </SPAN></P></DIV> document.immagine.src = "1.gif"; Prof. Carlo Blundo Tecnologie di Sviluppo per il WEB 18 9

Riepilogando Se la terza immagine nel documento HTML si chiama casa possiamo far riferimento ad essa in uno dei seguenti modi document.images[2] document.images[ casa ] document.casa I vantaggi dell ultimo approccio sono evidenti Prof. Carlo Blundo Tecnologie di Sviluppo per il WEB 19 E con gli altri elementi? Esistono tag HTML che non hanno associato nessun array Come possiamo accedere ai paragrafi (<P>) o alle sezioni (<DIV>)? Vedremo che con DOM level 1 potremo far riferimento ad un qualsiasi elemento HTML purché abbia l attributo ID settato document.getelementbyid(id); Prof. Carlo Blundo Tecnologie di Sviluppo per il WEB 20 10

La programmazione Event-Driven JavaScript è un linguaggio fortemente event-driven l utente interagisce con la pagina muovendo il mouse, cliccando, digitando qualcosa in una casella di testo, la pagina reagisce opportunamente a queste sollecitazioni il gestore dell evento è una funzione che risponde alla mossa dell utente (o dell ambiente) possiamo catturare gli eventi e gestirli Prof. Carlo Blundo Tecnologie di Sviluppo per il WEB 21 Il browser e gli eventi L interprete JavaScript monitora un insieme di eventi Possono essere eventi generati dall utente attraverso le proprie azioni sul documento Possono eventi generati dal browser caricamento delle immagini caricamento del documento Prof. Carlo Blundo Tecnologie di Sviluppo per il WEB 22 11

Eventi generati dall utente spostamento del focus tra gli elementi del documento da un campo all altro di un modulo con il tab movimenti del mouse passaggio del mouse sulle immagini passaggio del mouse sui link click pressione del tasto del mouse rilascio del tasto del mouse Prof. Carlo Blundo Tecnologie di Sviluppo per il WEB 23 Eventi in JavaScript Abort Blur Change Click DblClick Error Focus KeyDown KeyPress KeyUp Load MouseDown MouseMove MouseOut MouseOver MouseUp Move Reset Resize Select Submit Unload Prof. Carlo Blundo Tecnologie di Sviluppo per il WEB 24 12

Gestori di eventi Ad ogni evento è associato un gestore dell evento Per ottenere il nome del gestore di un evento basta aggiungere il prefisso on al nome dell evento stesso Il gestore di un evento permette di associare ad un evento un programma (funzione) JavaScript Ad ogni tag HTML è associato un insieme di gestori di eventi È possibile associare eventi anche ad oggetti JavaScript (dettagli alla fine delle slide) Prof. Carlo Blundo Tecnologie di Sviluppo per il WEB 25 Esempi di gestori di eventi click onclick Attivato quando l utente clicca su un elemento mouseover onmouseover Attivato quando il cursore del mouse si muove sopra un elemento mouseout onmouseout Attivato quando il cursore del mouse si sposta fuori un elemento Prof. Carlo Blundo Tecnologie di Sviluppo per il WEB 26 13

Gestori di eventi in HTML Vengono indicati tra gli attributi dei tag HTML La sintassi solitamente è del tipo < onevento= comandojs > dove comandojs può essere la semplice invocazione di una funzione, ma anche una sequenza di comandi complessi (sconsigliato) separati da ; Prof. Carlo Blundo Tecnologie di Sviluppo per il WEB 27 Esempio 1 <SCRIPT TYPE="text/javascript"> function ciao() { alert("sei passato sull'immagine"); } function addio() { alert("hai lasciato l'immagine"); } </SCRIPT> <IMG SRC="0.gif" border="0" onmouseover="ciao()" onmouseout="addio()"> Prof. Carlo Blundo Tecnologie di Sviluppo per il WEB 28 14

Esempio 2 <SCRIPT TYPE="text/javascript"> function ridimensiona() { window.resizeto(200,200); } </SCRIPT> <P> Se premi il bottone la finestra del browser diventerà di 200x200 pixel</p> <FORM> <INPUT TYPE="BUTTON" VALUE="Ridimensiona finestra" OnClick="ridimensiona()"> </FORM> Prof. Carlo Blundo Tecnologie di Sviluppo per il WEB 29 Rollover Esempio 3 (HTML) <BODY> <img width="70" height="60" name="foto" src="immagini/out.gif" onmouseover="over()" onmouseout="out()" onmousedown="giu()" onmouseup="su()"> Registrazione eventi Lo si può fare anche da javascript <form name="info"> <input type="text" name="stato"> </form> </BODY> Prof. Carlo Blundo Tecnologie di Sviluppo per il WEB 30 15

Rollover Esempio 3(JavaScript) <SCRIPT TYPE="text/javascript"> function over() { document.info.stato.value = "over"; document.foto.src = "immagini/over.gif"; } function out() { document.info.stato.value = "out"; document.foto.src = "immagini/out.gif"; } function giu() { document.info.stato.value = "giu"; document.foto.src = "immagini/giu.gif"; } function su() { document.info.stato.value = "su"; document.foto.src = "immagini/su.gif"; } </SCRIPT> Prof. Carlo Blundo Tecnologie di Sviluppo per il WEB 31 Rollover Esempio 4 (HTML) <BODY> <img width="70" height="60" name="foto" src="immagini/fotoout.gif" onmouseover="cambia('foto','over')" onmouseout="cambia('foto','out')" onmousedown="cambia('foto','giu')" onmouseup="cambia('foto','su')"> <form name="info"> <input type="text" name="stato" size="4"> </form></body> Prof. Carlo Blundo Tecnologie di Sviluppo per il WEB 32 16

Rollover Esempio 4 (JavaScript) <SCRIPT TYPE="text/javascript"> function cambia(nome,stato) { document.info.stato.value = stato; img="immagini/"+nome+stato+".gif"; document.images[nome].src=img; } </SCRIPT> È necessario che le immagini abbiano un nome composto dal nome usato nell attributo NAME di IMG seguito dal loro stato Non c è pre-caricamento delle immagini. Quando si scatena l evento, l immagine necessaria viene caricata Prof. Carlo Blundo Tecnologie di Sviluppo per il WEB 33 Pre-caricamento immagini Per far pre-caricare al browser le immagini la cosa da fare è dichiarare un array di oggetti di tipo Image ed associare alla proprietà src il nome dell immagine da pre-caricare var ImgCaricate = new Array(); var directory = "immagini/"; var nome = document.images[i].name; var su = directory + nome + "su.gif"; ImgCaricate [nome+"su"] = new Image(); ImgCaricate [nome+"su"].src = su; Prof. Carlo Blundo Tecnologie di Sviluppo per il WEB 34 17

Gestore onerror Quando si verifica un errore in uno script, viene scatenato l evento error È possibile associare al gestore onerror dell oggetto window una qualsiasi funzione che gestirà l errore verificatosi La funzione deve prendere in input tre parametri associati automaticamente a: Primo: il tipo di errore che si è verificato Secondo: il documento dove l errore si è verificato Terzo: il numero di linea che ha generato l errore Solo il primo errore è individuato Prof. Carlo Blundo Tecnologie di Sviluppo per il WEB 35 Esempio di gestore di errore window.onerror = GestisciErrore; function GestisciErrore(errore, url, line) { var msg = "" msg = "Errore tipo: " + errore + "\n"; msg = msg + "Documento: " + url + "\n"; msg = msg + "Linea: " + line; alert(msg); } Non funziona con Safari Prof. Carlo Blundo Tecnologie di Sviluppo per il WEB 36 18