Archivio mensile:giugno 2015

JavaScript Base – 2.4 – Output

Vediamo come generare un output sulla pagina, usando il codice JS.

Output

Un’azione di output prevede di far comparire qualcosa (ad esempio un messaggio o un oggetto) all’interno della pagina web.

JavaScript è in grado di produrre un output in vari modi, oggi vediamo:

  • la generazione di elementi HTML sulla pagina;
  • la generazione di un messaggio in una finestra di dialogo;
  • la modifica di un elemento (a livello di nodo) della pagina web;
  • l’invio di un messaggio alla console di debug del browser.

document.write()

Il primo output che vediamo consiste nell’invocare il metodo write() sull’oggetto document.

Quando una pagina web (un file HTML) viene caricata in un browser, viene generato un oggetto document.

L’oggetto document ha diverse proprietà e metodi (comportamenti) a sua disposizione.

Tra i suoi metodi troviamo write() che permette di “riempire” il documento con un contenuto di tipo HTML, passato come argomento (all’interno delle parentesi).

Pensiamo ad un codice di questo tipo:

<script>
  document.write("Testo semplice");
</script>

Tale codice, all’interno di una pagina web, inserisce un contenuto HTML nel punto in cui viene collocato lo script.

Cosa si intende per “contenuto HTML”?

Esattamente quello che voi potete scrivere nel Body di una pagina web:

  • testo;
  • paragrafi;
  • immagini;
  • tabelle;
  • ecc.

Per esempio, se voi scrivete nel body:

 <body>
   Rosso di sera, bel tempo si spera.
 </body>

avete inserito un contenuto HTML all’interno della pagina.

In questo esempio, il contenuto è dato da un testo semplicissimo, senza cioè tag per la formattazione o la definizione di oggetti specifici.

Quello che avete scritto si può realizzare in JS usando la seguente sintassi:

 <body>
   <script>
     document.write("Rosso di sera, bel tempo si spera.");
   </script>
 </body>

Notate che il testo è stato inserito tra doppi apici in quanto si tratta di una stringa, ovvero una sequenza di caratteri alfanumerici.

Se invece del testo semplice volevate inserire un paragrafo, sostituite il contenuto tra le parentesi con un nuovo contenuto che comprenda i tag del paragrafo:

 <body>
   <script>
     document.write("<p>Rosso di sera, bel tempo si spera.</p>");
   </script>
 </body>

Anche in questo caso è stato inserito tutto il contenuto tra doppi apici, compresi i tag dell’HTML, in quanto anche loro comprendono caratteri alfanumerici.

Quando lo script JS con document.write() viene inserito assieme all’HTML, ovvero viene eseguito mentre il browser carica gli elementi della pagina, l’output generato dal JS si mischia con quello in HTML della pagina web.

Se invece il metodo write() viene invocato quando gli elementi della pagina web sono ormai stati caricati (magari richiamandolo con un pulsante) la pagina verrà sovrascritta da ciò che passerete al metodo tra le sue parentesi.

Per questo motivo, il metodo write() viene spesso usato con scopi di testing, in quanto sono disponibili soluzioni più precise e sicure (ad esempio il metodo innerHTML, descritto di seguito) per le modifiche di una pagina che ha già del contenuto.

alert()

Un altro modo per generare un output è quello di sfruttare una finestra di dialogo.

Una finestra di dialogo (ne parleremo verso la fine di questo corso JS livello Base) è una finestrella che appare per avvisare l’utente della pagina o per chiedergli qualcosa.

Un esempio di questa finestra è dato da alert():

<script>
  alert("CIAO CIAO");
</script>

Alert genera una finestra molto semplice, costituita da un messaggio e da un pulsante che permette di chiuderla.

Il messaggio corrisponde a ciò che voi indicherete nelle parentesi tonde, sempre tra doppi apici.

Esempio di risultato finale:

output_txt4

Ci sono vari tipi di finestre di dialogo, ne parlerò nelle ultime lezioni al termine di questo corso.

innerHTML

Un modo “intelligente” per inserire un contenuto HTML in un punto preciso della pagina è dato da innerHTML.

Essendo questo uno dei primi capitoli di un corso base, non voglio ancora trattare concetti complicati ma vi farò una piccola introduzione ad un argomento interessante.

Secondo il DOM (Document Object Model), la pagina web viene vista come una struttura ad albero, caratterizzata da elementi genitori e sotto-elementi figli.

Ciascuno di questi elementi è detto nodo e rappresenta un oggetto della pagina web.

L’oggetto di livello superiore, quello in cima alla gerarchia è document: tutti gli altri nodi sono suoi figli.

Con JS è possibile manipolare i singoli nodi figli del document ma, per farlo, è necessario prima selezionarli.

Per selezionare i nodi possiamo usare diversi metodi ma oggi vediamo (occhio alle maiuscole!):

document.getElementById()

Tale metodo è in grado di selezionare un determinato nodo in base al valore del suo attributo Id.

Esempio, se la pagina contiene questo paragrafo:

 <body>
   <p id="speciale">Paragrafo speciale.</p>
 </body>

Il paragrafo è stato etichettato con l’id “speciale”, e solo lui può avere questo nome, in modo da poterlo individuare tra altri paragrafi.

Per poter scrivere del testo all’interno di quel determinato paragrafo, possiamo usare:

document.getElementById("speciale")

Ma selezionarlo e basta non serve a nulla, dobbiamo dire al codice JS cosa deve fare con quel nodo, per questo usiamo il metodo innerHTML:

 

<body>
  <p id="speciale">Paragrafo speciale.</p>
  <script>
    document.getElementById("speciale").innerHTML = "Nuovo contenuto";
  </script>
</body>

In questo esempio, abbiamo individuato l’unico paragrafo speciale della pagina e gli abbiamo modificato il contenuto, sovrascrivendolo.

console.log()

Un ultimo metodo di output si usa nelle operazioni di testing e debug dei programmi JS, e prevede di inviare messaggi alla console del browser.

Questa console è un ambiente di controllo che solitamente viene visualizzato sul vostro browser premendo il tasto F12.

Con il comando JS:

console.log("messaggio");

potete mostrare un messaggio direttamente nella finestra di output della console per lo sviluppo.

Si tratta di una operazione utile prevalentemente all’analisi dei vostri programmi, al testing ed al debug.

Video

JavaScript Base – 2.3 – Collocazione del codice

In questa lezione vi spiego dove posizionare il codice JavaScript nella pagina (o fuori da essa).

Come per i fogli di stile CSS, il codice JavaScript può essere inserito all’interno della pagina oppure può essere collocato in un file esterno, opportunamente collegato.

Se il codice JS è interno alla pagina, dovrà essere posizionato nell’head o nel body, purché racchiuso nel tag <script>.

Codice nell’head

Posizionando il codice nell’head, questo verrà letto al caricamento della pagina, prima del caricamento degli oggetti che poi compongono la pagina da visualizzare (quelli interni al body).

<html>
 <head>
   <title>Collocazione</title>
   <script>
     document.write("bla bla bla");
   </script>
 </head>
 <body>
   <h1>Intestazione</h1>
   <p>Paragrafo 1</p>
   <p>Paragrafo 2</p>
 </body>
</html>

In questo caso la scritta “Bla bla bla” verrà visualizzata prima dei due paragrafi Pippo e Pluto.

Codice nel body

Collocandolo nel body, invece, il codice sarà letto assieme agli elementi della pagina ed eseguito mentre il browser li visualizza.

<html>
 <head>
   <title>Collocazione</title>
 </head>
 <body>
   <h1>Intestazione</h1>
   <p>Paragrafo 1</p>
   <script>
     document.write("bla bla bla");
   </script>
   <p>Paragrafo 2</p>
 </body>
</html>

In questo caso la scritta “Bla bla bla” verrà visualizzata tra il paragrafo 1 ed il paragrafo 2, in quanto lo script viene eseguito in mezzo ai tag dei due paragrafi.

A cosa serve questa distinzione? Perché scegliere di inserire un codice prima, in mezzo o addirittura dopo il codice HTML degli elementi della pagina?

Se inserite un codice nell’head, potete scegliere di farlo eseguire subito (prima di caricare il resto della pagina) oppure di renderlo “innocuo” fino a quando non decidete voi di eseguirlo: in questo caso si parla di funzioni, ovvero blocchi di codice che si possono richiamare al momento del bisogno.

Il codice può anche essere inserito al fondo della pagina, di solito prima della chiusura del body, perché in questo modo il browser ha già letto tutto il contenuto della pagina e sarà in grado di trovare nello script i riferimenti agli oggetti in essa contenuti.

In questo corso di base sul linguaggio JavaScript, viene trattato principalmente il codice eseguito tra gli elementi HTML, ma nei corsi successivi vedrete come si usano gli script caricati prima o dopo la pagina, e imparerete ad utilizzare le funzioni.

Codice esterno

Un codice JS esterno, viene inserito in un file di testo semplice, di solito contrassegnato con un nome ed una estensione .JS:

nomefile.js

Il file esterno viene poi collegato alle pagine con il tag <script> e l’attributo src, che indica il percorso del file JS:

<html>
 <head>
   <title>Collocazione</title>
 </head>
 <body>
   <h1>Intestazione</h1>
   <p>Paragrafo 1</p>
   <p>Paragrafo 2</p>
   <script src="codice.js">
   </script>
 </body>
</html>

Nel file esterno il codice va inserito direttamente, senza quindi usare il tag script.

Video

JavaScript Base – 2.2 – Sintassi

In questa lezione vediamo la sintassi del linguaggio JavaScript, ovvero come scrivere correttamente il codice.

Programmi e istruzioni

Un programma è una sequenza di comandi o istruzioni che, se eseguiti nel giusto ordine, portano a risolvere un compito specifico.

Ad esempio, se dovete far bollire dell’acqua in una pentola, dovrete eseguire i seguenti passaggi:

  1. prendere una pentola;
  2. riempirla d’acqua;
  3. mettere la pentola sul fornello;
  4. accendere il fuoco;
  5. attendere finché l’acqua bolle.

Se eseguite tutti questi 5 passaggi nel giusto ordine (così come li ho scritti) in pochi minuti avrete acqua bollente. Se però invertite dei passaggi o ne saltate qualcuno, ad esempio se non riempite d’acqua la pentola, non otterrete nulla se non una pentola bruciata!

Ognuno di questi passaggi rappresenta un’azione che fa parte dell’operazione di far bollire l’acqua.

Nei linguaggi di programmazione i singoli passaggi o compiti vengono detti istruzioni o comandi.

Anche JavaScript è basato su un certo numero di istruzioni che, se posizionate in determinate posizioni nel codice HTML, producono un risultato finale ben specifico.

Come in tutti i linguaggi di programmazione, il JavaScript richiede che le istruzioni (o comandi) che lo compongono siano scritte in maniera corretta.

Sintassi JavaScript

Il codice, salvo alcune eccezioni, viene eseguito nell’ordine in cui questo viene scritto.

Pensiamo a questo esempio:

Istruzione 1;

Istruzione 2;

Istruzione 3;

L’istruzione 2, essendo prima della 3 e dopo la 1, verrà eseguita per seconda.

Il punto e virgola ( ; ) serve per separare una istruzione dall’altra:

Istruzione 1; Istruzione 2; Istruzione 3;

In questo modo, anche se scrivo tutto su un’unica riga, l’esecuzione del codice non cambia.

Il singolo comando, vedrete nelle lezioni successive, andrà scritto nella maniera corretta, senza introdurre spazi aggiuntivi e stando attenti con le lettere maiuscole e minuscole (il JS è case-sensitive).

Alcune istruzioni vengono poi racchiuse in gruppi, in questo caso si racchiudono tra parentesi graffe:

{
  istruzione1;
  istruzione2;
}

La parentesi viene aperta prima delle istruzioni e chiusa quando queste finiscono: questo garantisce l’esecuzione dell’intero blocco di comandi.

Video

JavaScript Base – 2.1 – Definizione

In questa lezione introduco il linguaggio JavaScript, spiegandovi perché si usa nelle pagine web.

Definizione

Il JavaScript è un linguaggio di programmazione che serve per rendere interattive le pagine web, ovvero dotarle di un comportamento.

L’HTML serve per inserire nella pagina gli oggetti che la compongono (testi, titoli, immagini, tabelle, ecc).

I fogli di stile CSS servono per formattare gli elementi descritti dall’HTML (modificare il loro aspetto, dimensione e posizione).

Il JavaScript vi permette di dare alla vostra pagina un comportamento, ad esempio:

  • visualizzare data e ora in base a quando viene vista;
  • avvisare l’utente con un messaggio;
  • cambiare la dimensione del testo con un click su un pulsante;
  • cambiare una immagine con un’altra al passaggio del mouse.

Per poter usare questo linguaggio è necessario conoscerne i suoi comandi e farsi entrare in testa un po’ di logica di programmazione: vedrete che con questo corso avrete le basi per poterlo fare in autonomia.

I corsi successivi che pubblicherò vi insegneranno anche ad usare il codice JavaScript in ambienti molto usati nel mondo del lavoro.

Video

Javascript Base – 1.2 – Prerequisiti e materiale occorrente

Per poter seguire questo corso sono richiesti i seguenti prerequisiti:

  • Conoscenza di base del linguaggio HTML

Cosa dovete sapere dell’HTML per poter usare i CSS?

Dovrete essere in grado di:

  • Creare una pagina HTML e modificarla
  • Visualizzare l’anteprima della pagina su di un browser
  • Conoscere i tag principali per testi e immagini

Sarebbe anche utile una infarinatura sui fogli di stile CSS, ma non è indispensabile per seguire questo corso.

Se non siete sicuri delle vostre conoscenze sull’argomento HTML, o volete semplicemente fare un ripasso, vi consiglio di dare un’occhiata al mio corso:

Per quel che riguarda il materiale che useremo, sarà sufficiente un normale computer e un editor di testo, ovvero un programma con cui poter creare e modificare file di testo (io userò il comunissimo Blocco Note).

Video

JavaScript Base – 1.1 – Introduzione al corso

In questo corso saranno trattati i seguenti argomenti:

  • Introduzione al linguaggio JavaScript
  • Variabili
  • Operatori
  • Istruzioni condizionali
  • Finestre di dialogo

Pensato per chi parte da zero, e quindi non ha alcuna conoscenza sull’argomento, questo corso vi permetterà di comprendere il linguaggio JavaScript e cominciare ad utilizzarlo per rendere interattive le vostre pagine web.

Al termine del corso sarete in grado di:

  • capire dove posizionare uno script JavaScript nella vostra pagina web
  • dichiarare variabili per memorizzare dati di tipo diverso
  • manipolare variabili e valori con gli operatori principali del linguaggio
  • effettuare confronti tra dati e variabili
  • usare finestre di dialogo per avvisare l’utente o memorizzare dati o comandi

Video

CSS3 Base – 5.3 – Pseudo-classi

In questa lezione vediamo come usare le pseudo-classi come selettori nei CSS.

Finora abbiamo visto i seguenti selettori:

  • nomi di tag – identificano un particolare gruppo di elementi HTML presenti nella pagina (es: p, body, h1) ;
  • classi – rappresentano un’etichetta con cui contrassegnare elementi HTML (anche di tipo diverso) che devono avere lo stesso stile;
  • ID – speciali etichette per identificare un unico elemento che avrà uno stile particolare nella pagina.

Esiste la possibilità di usare un altro tipo di selettore nei CSS: le pseudo-classi.

Pseudo-classi

Una pseudo-classe non indica un particolare elemento HTML, indica lo stato in cui si trova.

La pseudo-classe si indica con il nome del tag HTML, seguito da due punti (:) e dal nome dello stato in cui si trova.

Si usano molto per gestire gli stati in cui può trovarsi un link (collegamento):

  • a:link – collegamento non ancora visitato;
  • a:visited – collegamento già visitato;
  • a:hover – collegamento al passaggio del mouse;
  • a:active – collegamento attivo.
Pseudo-classi per i link
Pseudo-classi per i link

Per il loro corretto funzionamento, le pseudo-classi vanno inserite in questo ordine.

Video

CSS3 Base – 5.2 – ID

In questa lezione vi parlo di cosa sono gli ID e di come vengono usati nei CSS.

ID

Come per la classe, anche l’ID viene usato per etichettare gli elementi HTML a cui applicare un determinato stile ma, a differenza della classe, l’ID si applica ad un unico elemento.

Per prima cosa applichiamo l’ID all’elemento univoco nel codice HTML:

Applicazione dell'ID
Applicazione dell’ID

In questo caso è stato applicato solo al paragrafo 2, l’unico che deve avere quello stile.

Poi creiamo nel CSS un selettore apposito formato da un cancelletto (#) seguito dal nome dell’ID:

ID nel CSS
ID nel CSS

Il risultato finale dimostra che soltanto il paragrafo 2 è interessato dallo stile:

Esempio
Esempio

Si poteva ottenere un risultato analogo andando ad inserire un CSS in linea nel tag del paragrafo 2, tuttavia in questo caso sarebbe stato più scomodo da aggiornare (ad esempio se volevamo poi cambiare il colore).

Video

CSS3 Base – 5.1 – Classi

In questa lezione vi parlo di cosa sono le classi e di come si usano nei CSS.

Abbiamo detto che se creiamo una regola CSS usando un selettore HTML (es: p), tale stile si applica a tutti gli elementi di quel tipo:

Stile per paragrafi
Stile per paragrafi

Lo stile indicato nell’esempio applica un colore blu al testo di tutti i paragrafi della pagina.

Nel caso in cui noi non volessimo assegnare il colore blu a tutti i paragrafi ma solo ad alcuni, dovremmo agire in maniera diversa.

Classi

Potrebbe risultare utile definire una classe, ovvero un’etichetta, per contrassegnare gli elementi HTML che devono avere caratteristiche simili.

In questo caso applicheremo la classe a tutti gli elementi che dovranno avere il testo in blu.

La classe si applica con l’attributo class dentro al tag HTML dell’elemento:

<p class="testoblu">Paragrafo 1</p>

Il valore dell’attributo class sarà il nome della classe, nel nostro caso è testoblu, per ricordarci che gli elementi con tale etichetta avranno il testo colorato di blu.

Oltre ai paragrafi, posso applicare la stessa etichetta ad altri elementi ti tipo testuale, ad esempio intestazioni, liste, ecc.

Nell’esempio vado ad applicare la classe testoblu a due paragrafi e ad una intestazione:

Applicazione della classe
Applicazione della classe

Ora non ci resta che dire al CSS come deve gestire tutti gli elementi di classe testoblu.

Per creare la classe si inserisce nel CSS un selettore formato da un punto seguito dal nome della classe (parola unica senza spazi), inserendo nelle graffe le dichiarazioni di stile:

Creazione della classe
Creazione della classe

Questo è risultato finale, in cui appaiono blu solo gli elementi di classe testoblu:

Esempio
Esempio

Video