javascript - 4 | webmaster & webdesigner

24
Javascript [4] Matteo Magni

Upload: matteo-magni

Post on 29-Nov-2014

331 views

Category:

Technology


3 download

DESCRIPTION

Quarta lezione del modulo Javascript per il corso di WebMaster & WebDesigner

TRANSCRIPT

Page 1: Javascript - 4 | WebMaster & WebDesigner

Javascript [4]Matteo Magni

Page 2: Javascript - 4 | WebMaster & WebDesigner

DOM

Il Document Object Model, letteralmente modello a oggetti del documento, è una

forma di rappresentazione dei documenti strutturati come modello orientato agli

oggetti. (wikipedia)

Page 3: Javascript - 4 | WebMaster & WebDesigner
Page 4: Javascript - 4 | WebMaster & WebDesigner

Oggetti

La programmazione orientata agli oggetti (OOP, Object Oriented Programming) è un

paradigma di programmazione che permette di definire oggetti software in grado di

interagire gli uni con gli altri attraverso lo scambio di messaggi. (wikipedia)

Page 5: Javascript - 4 | WebMaster & WebDesigner

Attributi

Attributi:

rappresentano i dati dell’oggetto, ovvero le informazioni che caratterizzano un oggetto.Es: oggetto array ha come proprietà la sua lunghezza.

days = new Array();

alert(days.length);

Page 6: Javascript - 4 | WebMaster & WebDesigner

Metodi

Metodi:

Sono le funzionalità, le azioni che un oggetto può compiere.Es: oggetto document ha come metodo writedocument.write('pippo');

Page 7: Javascript - 4 | WebMaster & WebDesigner

Metodi [2]

• Un metodo può avere un valore di ritorno

• Può avere parametri che vengono passati per permettere la sua esecuzione.

//passaggio di uno o più parametri

document.write('Hello World!');

//valore di ritorno

element=document.getElementById('pippo);

Page 8: Javascript - 4 | WebMaster & WebDesigner

DOM e Js

Mentre Javascript è il linguaggio di programmazione che ti permette di operare sugli oggetti DOM, il DOM ti fornisce

metodi e proprietà per recuperare, modificare, aggiornare ed eliminare parti del documento su cui stai lavorando. Per

esempio, potresti recuperare il valore di un campo di testo e metterlo in una variabile stringa con il DOM; a questo punto puoi usare l'operatore Javascript di concatenazione + , per

unire quella stringa ad un'altra, in base a ciò che vuoi ottenere. Potresti quindi usare il metodo alert() per mostrare

la stringa all'utente attraverso una finestra di dialogo.

Page 9: Javascript - 4 | WebMaster & WebDesigner

DOM e Js [2]

In che senso "indipendente dal linguaggio"? Non è javascript l'unico modo per accedere al DOM? No, ad

esempio Mozilla usa il DOM sia col C++ che col Javascript per la sua interfaccia utente. Questi sono

alcuni dei linguaggi che hanno un'implementazione del DOM: Perl, Java, ActiveX, Python; ciò è possibile grazie

all'indipendenza del DOM dal linguaggio di programmazione.

https://developer.mozilla.org/it/docs/Il_DOM_e_JavaScript

Page 10: Javascript - 4 | WebMaster & WebDesigner

Esempio - Document

<!­­ My document ­­>

<html>

<head>

  <title>My Document</title>

</head>

<body>

  <h1>Header</h1>

  <p>

    Paragraph

  </p>

</body>

</html>

=> wikipedia

Page 11: Javascript - 4 | WebMaster & WebDesigner

Attributi Document<!doctype html>

<html>

    <head>

        <meta charset="UTF­8">

        <title>My Web Page</title>

        <script>

        alert(document.title);

        alert(document.URL);

        alert(document.location);

        alert(document.domain);

        alert(document.refererr);

        </script>

    </head>

    <body>

        Pippo

    </body>

</html>

Page 12: Javascript - 4 | WebMaster & WebDesigner

getElementById()

E' il metodo che permette di recuperare l’elemento caratterizzato univocamente dal valore del proprio attributo ID.

Restituisce un riferimento all'elemento in questione.

Pippo = document.getElementById('pippo');

alert(Pippo.innerHTML);

Page 13: Javascript - 4 | WebMaster & WebDesigner

A volte quando seleziono un oggetto del DOM lo script non fa nulla?

Page 14: Javascript - 4 | WebMaster & WebDesigner

Esempio: Non va?!?!?!?

<!doctype html>

<html>

    <head>

        <title>My Web Page</title>

        <script>

          var x=document.getElementById("myHeader");

            alert(x.innerHTML);

        </script>

    </head>

    <body>

        <h1 id="myHeader">Click me!</h1>

    </body>

</html>

Page 15: Javascript - 4 | WebMaster & WebDesigner

Perchè non va?

Ma l'oggetto c'è?!?!?

Page 16: Javascript - 4 | WebMaster & WebDesigner

Quando lo script viene eseguito l'elemento di id myHeader non è ancora stato inserito nel

DOM.

Page 17: Javascript - 4 | WebMaster & WebDesigner

Eseguire quando?<!doctype html>

<html>

    <head>

        <title>My Web Page</title>

        <script>

            //qui non funziona

          var x=document.getElementById("myHeader");

            alert(x.innerHTML);

        </script>

    </head>

    <body>

        <h1 id="myHeader">Click me!</h1>

    <script>

          var x=document.getElementById("myHeader");

            alert(x.innerHTML);

        </script>

    </body>

</html>

Page 18: Javascript - 4 | WebMaster & WebDesigner

window.onload

window.onload = function ()

{

Javascript code goes here

}

Posso risolvere il problema facendo partire l'esecuzione dello script attraverso l'attributo onload dell'oggetto window.

Page 19: Javascript - 4 | WebMaster & WebDesigner

window.onload [2]

Window.onload viene eseguito quando tutto il contenuto della pagina, tutte i js, tutte le

immagini sono caricate.

Page 20: Javascript - 4 | WebMaster & WebDesigner

Eseguire quando?

    <head>

        <meta charset="UTF­8">

        <title>My Web Page</title>

        <script>

        window.onload = function () {

            var x=document.getElementById("myHeader");

            alert(x.innerHTML);

        }

        </script>

    </head>

    <body>

        <h1 id="myHeader">Pippo</h1>

        <img src="http://images.digitalmedianet.com/2006/Week_46/nvas85m8/story/thumb­3648x2736.jpg"/>

    </body>

Page 21: Javascript - 4 | WebMaster & WebDesigner

Aspetto che carichi tutto...

Page 22: Javascript - 4 | WebMaster & WebDesigner

Leggere e Settare<head>

<script>

function changeLink()

{

document.getElementById('myAnchor').innerHTML="W3Schools";

document.getElementById('myAnchor').href="http://www.w3schools.com";

document.getElementById('myAnchor').target="_blank";

}

</script>

</head>

<body>

 

<a id="myAnchor" href="http://www.microsoft.com">Microsoft</a>

<input type="button" onclick="changeLink()" value="Change link">

 

Posso andare a modificare i valori degli attributi dell'oggetto.

Page 23: Javascript - 4 | WebMaster & WebDesigner

getElementsByTagName()

Questo metodo permette di selezionare l’insieme degli elementi caratterizzati dallo stesso tag.

Ritorna un array di tutti gli elementi con quel tag, nell’ordine in cui compaiono nella pagina.

pElements=document.getElementsByTagName('p');

//pElements è un array

Page 24: Javascript - 4 | WebMaster & WebDesigner

Domande?

Slide:

http://cypher.informazione.me/

Code:

https://github.com/inFormazione/Cypher/

mail:

[email protected]