...

Document…

by user

on
Category: Documents
33

views

Report

Comments

Transcript

Document…
Document… iamoci
Roberto Bruni e Daniela Giorgetti
Document
• L’oggetto document fa da contenitore per
tutti gli oggetti correlati ad HTML e
associati ai tag <head> e <body>
• notare che anche se gli eventi onload e
onunload sono catturati nel body, essi sono
pertinenti alla window e non al document!
Bruni e Giorgetti
2
document.open()
• JS può essere usato per generare documenti
on-the-fly
– document.open( “mimetype”)
• prepara uno stream per successive write e writeln.
• il parametro è il MIME type dello stream:
• text/html: default
• text/plain
• image/gif
• image/jpeg
• image/x-bitmap
• plugin (qualsiasi MIME type di plugin per
Netscape)
Bruni e Giorgetti
3
document.write()
• document.write( espressioneJS )
• document.writeln( espressioneJS )
• Valutano l’espressione JS e scrivono il
risultato sul documento
– writeln appende anche un carattere newline
alla fine dell’espressione
Bruni e Giorgetti
4
document.close()
• Chiude lo stream aperto con document.open()
• Mentre open e close preparano o chiudono un
documento generato, write e writeln ne
definiscono il contenuto.
– tutte le espressioni JS sono valide, incluse letterali,
variabili e interi
• La limitazione principale è che non si può
modificare il contenuto del documento corrente
senza ricaricare la pagina
Bruni e Giorgetti
5
Generazione del documento
• Il nuovo documento può essere creato
– nella finestra corrente
• es. per creare pagine diverse a seconda del browser
– dentro un frame
• es. come risultato di un input utente in altra frame
– dentro una finestra separata
• es. nuova finestra
Bruni e Giorgetti
6
Cambiare colori
• JS permette di modificare i valori impostati
nel body per sfondo, testo, link
– questi corrispondono infatti a 5 proprietà di
document:
• fgcolor (testo)
• bgcolor (sfonfo)
• alinkcolor (link attivi)
• linkcolor (link)
• vlinkcolor (link visitati)
• In linea di principio non si potrebbero
applicare ad una pagina già visualizzata…
Bruni e Giorgetti
7
La proprietà location
• document.location è read-only!
• Per caricare un nuovo documento potete
modificare invece
window.location.href
Bruni e Giorgetti
8
Links
• Permette la gestione degli eventi
– onclick
– onmouseover
• I link non hanno la proprietà name e quindi
non possiamo riferire uno specifico link
direttamente.
• dobbiamo usare l’array
– document.links
Bruni e Giorgetti
9
Estrarre informazioni
• Supponiamo di voler estrarre tutti i link da
una pagina caricata in un frame e di volerli
visualizzare su un’altra pagina
semplicemente premendo un pulsante…
– si può fare!
– Esercizio: farlo (o almeno provarci)… ma non
subito… tra qualche diapositiva
Bruni e Giorgetti
10
Eseguire JS nei link
• Usando il protocollo
javascript:
• nell’attributo href del link possiamo
valutare un’espressione JS invece di
raggiungere una nuova URL o mandare
della posta
• Però il codice deve essere self-contained
• non si può riferire un oggetto fuori dal contesto
come un elemento di un’altra finestra
Bruni e Giorgetti
11
Ancora ancore!
• Potremmo dire che le ancore sono “JS
resistenti” perché non ci si può fare molto…
• infatti le ancore non hanno proprietà,
metodi o eventi interessanti
• l’unico uso che si può fare del vettore di
ancore del documento (document.anchors) è
di determinare il numero delle ancore e
scorrerle
Bruni e Giorgetti
12
Image
• L’oggetto Image è supportato da JS1.1+
• permette di gestire direttamente gli eventi
onabort, onerror e onload
(dell’immagine)
• Utile anche per il precaricamento di
immagini
Bruni e Giorgetti
13
Esempio: Estrarre Info I
• Vogliamo fare uno script che ci aiuti a
estrarre informazioni da documenti html
– caricare una pagina del file system
– visualizzarla
– creare una pagina on-the-fly con l’elenco delle
immagini visualizzate nella pagina caricata
• Vediamo una soluzione con frame
Bruni e Giorgetti
14
Esempio: Estrarre Info II
DOCUMENTO MASTER
<html>
<head><title>Estrai Immagini</title></head>
<frameset cols="80%,*">
<frameset rows="15%,*">
<frame name="form_di_scelta" src="scegliDocImages.html" />
<frame name="doc_selezionato" src="paginaVuota.html" />
</frameset>
<frame name="info_images" src="paginaVuota.html" />
</frameset>
</html>
Bruni e Giorgetti
15
Esempio: Estrarre Info III
scegliDocImages.html
<html>
<head><title>Scegli documento HTML</title>
<script type="text/javascript"> … </script></head>
<body>
<form name="selezioneFile">
<input type="file" name="nomeFile" />
<input type="button“
onclick="carica(document.selezioneFile.nomeFile.value)"
value="Carica Pagina" />
<input type="button"
onclick="estrai()"
value="Estrai Immagini" />
</form>
</body>
</html>
Bruni e Giorgetti
16
Esempio: Estrarre Info IV
scegliDocImages.html
<script type="text/javascript">
<!-function carica(nomeFile) {
parent.doc_selezionato.location.href="file://"+nomeFile;
}
// nomeFile è quello selezionato nella casella di input
// parent è il documento master (finestra principale)
// parent.doc_selezionato è il frame dove carichiamo il
documento (finestra sorella di quella dove gira lo
script)
parent = top
form_di_scelta
(scegliDocImages.html)
doc_selezionato
Bruni e Giorgetti
info_images
17
Esempio: Estrarre Info V
scegliDocImages.html
function estrai() {
var temp_image;
parent.info_images.document.open("text/html");
parent.info_images.document.writeln(“<pre>");
for (i=0;i<parent.doc_selezionato.document.images.length;i++) {
temp_image = parent.doc_selezionato.document.images[i];
parent.info_images.document.writeln(unescape(temp_image.src));
parent.info_images.document.writeln("["+temp_image.alt+"]");
parent.info_images.document.writeln();
}
parent.info_images.document.write("</pre>");
parent.info_images.document.close();
}
//-->
</script>
Bruni e Giorgetti
18
Quiz riassuntivi
– Quale tag corrisponde all’oggetto document ?
•
•
•
•
nessun tag
il tag <HTML>
il tag <HEAD>
il tag <BODY>
– Come si fa a sapere quante immagini ci sono nella pagina?
• non si può
• window.images.length
• window.length
• document.images.length
• document.length
– Come si fa a convertire un documento in lingue diverse?
• non si può
• chiamiamo un interprete
• con document.language
Bruni e Giorgetti
19
Esercizi
Bruni e Giorgetti
20
Fly UP