Esercizi svolti di JavaScript

Alcuni esercizi che potrebbero essere utili.Gli esercizi sono per argomento e complessità.

Utilizzo delle istruzioni

  • Creare uno script che chieda il nome e il cognome all’utente prima che la pagina venga caricata.
  • Provare a chiamare una finestra di dialogo (di tipo alert) che contenga la scritta "Benvenuto"+ nome + cognome.
  • In fondo alla pagina deve essere scritto “Benvenuto"+ nome + cognome.
soluzione
-----
  • Creare una pagina che chieda all’utente di fornire la propria autorizzazione al trattamento dei dati.
  • Nel caso non sia data, scrivere "Autorizzazione non concessa".
  • Nel caso contrario scrivere "Autorizzazione concessa".
soluzione
-----
  • Creare una pagina in cui il sistema chiede all'utente il proprio nome
  • Il sistema verifica il nome e comunica all'utente se è un amministratore o meno
  • E' dato un array di nomi che hanno i diritti di amministratore
soluzione
-----
  • Chiedere tre colori in input all’utente: uno per il testo, uno per lo sfondo e uno per il titolo.
  • Chiedere alll’utente la dimensione del carattere di base (da 1 a 7).
  • Determinare la dimensione e le caratteristiche di H1 (+3, grassetto), H2 (+2) e H3 (+1, grassetto, corsivo) rispetto alle caratteristiche inserite dall’utente per il carattere.
  • Creare un testo in cui siano evidenti queste caratteristiche.
  • Controllare che il colore dello sfondo, quello del titolo e quello del testo siano diversi.
  • Nel caso due o più dei colori assegnati dall’utente siano uguali, devono essere presenti regole che determinino che colore devono assumere titolo, testo e sfondo.
  • Nel caso l’utente inserisca al posto dei tre colori il testo "*"deve essere caricato un foglio di stile esterno.
soluzione

Versione semplificata dell'esercizio precedente.

Creare uno script JavaScript che:

  • chieda all'utente la dimensione del carattere e il colore per i tag p, body, h1
  • chieda all'utente il colore dello sfondo per il tab body
  • derivi automaticamente la dimensione del carattere dei tag h1 e h3 da quella del tag h1
  • generi un foglio di stile interno in base a queste specifiche
soluzione
-----

Utilizzo delle funzioni

  • Calcolare il totale della spesa (per un numero non definito di acquisti) utilizzando una funzione.
  • L’utente deve poter interrompere gli acquisti scrivendo 0.
soluzione
-----
  • Stampare la lista della spesa per un massimo di 3 acquisti.
  • L’utente deve poter interrompere gli acquisti scrivendo *.
soluzione
-----
  • Creare uno slide-show di immagini
soluzione
-----

Array e Oggetti

  • Definire dei prompt che richiedono le proprietà Processore, Hard Disk, Scheda Video, Ram di un computer.
  • Creare un oggetto computer con tali proprietà.
  • Stampare le proprietà dell’oggetto.
soluzione
-----
  • Chiedere all'utente dei numeri in input.
  • Salvare i numeri in un array.
  • Ordinare con le funzioni degli array.
soluzione
-----

 

Finestre e Frame

  • Creare una funzione che permetta ad un utente di tornare alle ultime 10 pagine che ha visitato.
soluzione
-----
  • Creare una semplice pagina con un layout a tabella, con la larghezza della tabella impostata tramite foglio di stile.
  • Creare una funzione che imposti la larghezza della tabella pari al 95% della risoluzione.
soluzione
-----
  • Creare una semplice pagina con un layout a tabella, con la larghezza della tabella impostata tramite foglio di stile.
  • Creare una funzione che imposti la larghezza della tabella pari al 95% dello spazio disponibile.
soluzione
-----
  • Creare una semplice pagina con un layout a tabella, a due colonne.
  • Permettere all'utente di nascondere la colonna di destra (con un nuovo caricamento della pagina e la lettura de
soluzione
-----

Dom

  • Creare una funzione caricata in avvio (onLoad su body) che cambi il colore di sfondo ongli 15 secondi (window.setTimeout(comando,millisecondi);
  • Il colore di sfondo (document.bgColor) viene preso da un array.
  • Quando tutto l’array è stato visitato, ricomincia.
  • Inserire due bottoni, uno per fermare e l’altro per continuare l’esecuzione (onClick).
soluzione
-----
  • Stampare le proprietà dell’oggetto navigator (window.navigator).
soluzione
-----
  • Fare una tabella in una pagina che permetta di impostare un bookmark a seconda del browser.
  • La proprietà document.title contiene il titolo della pagina.
  • Per explorer: window.external.AddFavorite(bookmarkurl,bookmarktitle).
  • Per netscape: testo che dice "Premere CTRL+D per salvare la pagina nei segnalibri".
soluzione
-----
  • Cambiare il colore di un testo non in un link, ne in un pulsante di un form passando il mouse sopra un elemento sensibile.
  • Utilizzare i fogli di stile.
  • Per risolvere considerare il fatto che tramite il dom di javascript è possibile accedere alle proprità di qualunque elemento con un nome della pagina tramite la sintassi nomeelemento.proprietà = valore (in questo caso nomeelemento.className=nomeclasse.
soluzione
-----
  • Cambiare il colore di un testo in un div passando il mouse sopra l'elemento stesso.
  • Utilizzare i fogli di stile.
  • Per risolvere considerare il fatto che tramite il dom di javascript ogni elemento può accedere alle proprie proprietà tramite la parola chiave this.
soluzione
-----

Commenti

Ritratto di Antonio

Ciao, sto facendo i tuoi esercizi javascript al terzo esercizio, " * Creare una pagina in cui il sistema chiede all'utente il proprio nome * Il sistema verifica il nome e comunica all'utente se è un amministratore o meno * E' dato un array di nomi che hanno i diritti di amministratore" Ho visto la soluzione ma io ho fatto diversamente utilizzando una unica funzione, risolvendo in modo più semplice, forse non ho ben inteso l'esercizio comunque ho fatto così: function Entrata() { var utente=new Array(); utente[0]="Marco"; utente[1]="Franco"; utente[2]="Francesco"; var chiediNome=prompt("Quale e\' il tuo nome", "inserisci nome"); if (chiediNome==utente[1]) { alert("Benvenuto Amministatore " + chiediNome); } else if (chiediNome==utente[0] || chiediNome==utente[2]) { alert("Benvenuto utente " +chiediNome); } else { alert(chiediNome+ " non sei un utente tantomeno un amministratore"); } } >> Io ho fatto con una lista di utenti e uno dei quali è un amministratore, se è amministratore mi dice che lo è se è quegli altri 2 è un utente, se nessuno degli altri non è niente. Tu hai fatto diversamente ma non ho capito, se hai tempo potresti spiegarmelo?? :) grazie
Ritratto di Anonymous

ciao.... riusciresti a crearmi uno script con questa funzione???

  • Chiedere all'utente dei numeri in input-
  • Salvare i numeri in un array.
  • Ordinare con le funzioni degli array.

grazieeeeee

Ritratto di andres

direi che e' meglio se prendi un bel libro di JavaScript (o la Open JavaScript guide da SourceForge) e provi a farlo...

Ritratto di Anonymous

Ciao, mi sono molto utili questi esercizi! Ti ringrazio.

Volevo solo fare una precisazione nell'esercizio 3 della sezione DOM:

  • Fare una tabella in una pagina che permetta di impostare un bookmark a seconda del browser.
  • La proprietà document.title contiene il titolo della pagina.
  • Per explorer: window.external.AddFavorite(bookmarkurl,bookmarktitle).
  • Per netscape: testo che dice "Premere CTRL+D per salvare la pagina nei segnalibri".

Secondo me chi inizia a programmare per il web dovrebbe fin da subito rendersi conto dei diversi comportamenti dei browser. Per questo rimando una soluzione secondo me piu' esaustiva dell'esercizio, ovvero compatibile per i browser piu' comuni explorer e Mozilla Firefox.

if(window.external.AddFavorite){//window.external e' defined per Explorer
        window.external.AddFavorite(document.location.href,document.title);
}
else if(window.sidebar){//window.sidebar e' defined per Firefox
        window.sidebar.addPanel(document.title, document.location.href, "");
}

N.B. : window.sidebar.addPanel in firefox aggiunge un nuovo pannello alla barra laterale.

Ritratto di Giuly

Trovare la media e il massimo dei numeri inseriti da tastiera sapendo che se l'utente mette 0 non chiede più numeri ed esce dal ciclo.
Ritratto di Anonymous

Meglio che la condizione di fine ciclo sia l'acquisizione di -1, o, ancora meglio, di un carattere speciale.

Ritratto di Anonymous

qualcuno sarebbe cosi gentile da svolgere per me un esercizio di javascript?

Ritratto di andres

spiacente, non sarebbe eticamente corretto...

Ritratto di Anonymous

come si risolve questo esercizio? "Una frase alfabetica è formata esclusivamente dai caratteri dell'alfabeto e dallo spazio bianco. Definire un documento html che calcola il numero delle vocali, delle consonanti  e degli spazi bianchi di una frase alfabetica.            Per favore è davvero importante

Ritratto di Michele

Ciao,

ho notato che in javascript viene utilizzato il carattere $, a cosa serve?

Qualcuno lo potrebbe spiegare..grazie

Ritratto di Anonymous

ma ragazzi ho dato un occhiata al codice del esercizio 3 ma è pieno di funzioni e cose in piu non utili non basta scrivere una cosa come questa?

var array = new Array("Enrico" , "Giovanni" , "Federico");
var nome = prompt("digita il tuo nome" , "");
  if((nome == array[0])|| (nome == array[1]) || (nome == array[2]))
    {
    alert("Puoi entrare nel sito");

    }
    else{
    alert("non hai i permessi per entrare in questo sito \n il tuo nome è diverso da Enrico, Giovanni e Federico");
    }

 

li invece è pieno di funzioni inuitli a mio avviso

Ritratto di Shank

salve a tutti, stavo ripassando javascript ed ho notato questi esercizi, all'esercizion numero 3 ho ricavato una soluzione a mio parere migliore, perchè con il metodo presente nella soluzione e con i metodi presenti nei commenti si fa un controllo nome per nome, quindi si presuppone che si sappia quanti siano gli sviluppatori, mentre con la mia soluzione anche se non si sa quanti sono gli sviluppatori rimane sempre valida e inoltre c'è meno codice

var admin = new Array('Giuseppe', 'Nicola', 'Pasquale');
var user = prompt('Inserisci il tuo nome','nome');
for (i = 0; i < admin.length; i++) {
if (user == admin[i]) {
document.write ("Autorizzazione concessa");
}
}
if (document.body !== "Autorizzazione concessa") {
document.write ("Autorizzazione non concessa");
}
Ritratto di Shank

non avevo notato il terzo punto per quello basta aggiungere dopo l'utlimo document.write
alert(admin);