JavaScript/Oggetto document: differenze tra le versioni

Wikibooks, manuali e libri di testo liberi.
Contenuto cancellato Contenuto aggiunto
Ramac (discussione | contributi)
+ proprietà + links
Ramac (discussione | contributi)
m + images
Riga 60: Riga 60:
}
}
</source>
</source>

== L'array images ==
Analogamente all'array <code>links</code>, esiste anche un array <code>images</code> che permette di accedere a tutte le immagini presenti nella pagina.<br/>
Rispetto a <code>links</code>, questo array presenta una differenza: è possibile accedere agli elementi della pagina anche attraverso il loro attributo <code>name</code>. Ad esempio:
<source lang=html4strict><img name="logo" src="logo.png" width="130px" height="130px" /></source>
Possiamo accedere a quell'immagine tramite l'indice numerico oppure tramite il nome, in questo modo:
<source lang=javascript>document.images["logo"]</source>

L'oggetto <code>image</code> espone come proprietà gli attributi di qualsiasi immagine HTML, come <code>src</code>, <code>border</code>, ecc... Presenta inoltre un'interessate proprietà <code>complete</code> che restituisce true se l'immagine è già stata caricata dal browser.

[[Categoria:JavaScript|Oggetto document]]
[[Categoria:JavaScript|Oggetto document]]

Versione delle 21:01, 19 ott 2007

Indice del libro

Oltre alle proprietà elencate nel modulo precedente, l'oggetto globale window espone altre importanti proprietà, tra le quali l'oggetto window.document.
Questo oggetto permette di ottenere un riferimento al documento HTML e agli elementi in essa contenuti.

Metodi

L'oggetto espone solo pochi metodi:

  • open() e close() rispettivamente aprono e chiudono un flusso di informazioni per l'uso dei metodi elencati sotto
  • write() e writeln() scrivono nella pagina la stringa (formattata in HTML) passata come parametro:
    • se la pagina è già stata caricata:
      • se è stato aperto il flusso di informazioni, il testo verrà inserito alla fine della pagina
      • se il flusso non è stato aperto, il testo sostituirà il testo della pagina
    • se la pagina non è ancora stata caricata, se si usando blocchi <script> all'interno del <body>, le informazioni si inseriscono nel punto in cui è presente lo script

Ad esempio:

<body>
  <p>Testo<br />
  <script type="application/x-javascript">
    document.write('<a href="pagina.html">link</a>');
  </script>
  Testo</p>
</body>

genererà il codice:

<body>
  <p>Testo<br /><a href="pagina.html">link</a>
  Testo</p>
</body>

Proprietà

Le proprietà dell'oggetto document possono essere relative:

  • agli attributi dell'elemento <body> della pagina
  • al contenuto vero e proprio del corpo del documento
  • altre proprietà del documento HTML

Nel primo gruppo, troviamo proprietà come:

  • fgColor e bgColor: indicano rispettivamente il colore di primo piano e di sfondo della pagina. Corrispondono agli attributi text e background.
  • linkColor, alinkColor, valinkColor: il colore rispettivamente dei link allo stato normale, dei collegamenti attivi e dei collegamenti visitati. Corrisponde agli attributi HTML link, alink e vlink.

Tra le proprietà del documento HTML la più rilevante è document.title, che permette di accedere al titolo del documento (etichetta <title&t;.

Accedere ai link nella pagina

Il primo attributo che ci permette realmente di accedere agli elementi della pagina è l'array links che restituisce un riferimento agli oggetti <a> presenti nel documento:

var l = document.links[0]; //restituisce un riferimento al primo link nella pagina
alert('Nella pagina ci sono ' + document.links.length + ' link'); //ricordiamoci che è un array

Ciascun oggetto link presenta le seguenti proprietà:

  • href: restituisce o imposta il valore dell'attributo href del link. A partire da esso derivano alcuni attributi relativi all'URL a cui punta il link:
    • hostname: indica il nome dell'host dell'URL
    • pathname: indica il percorso oggetto indicato dell'URL
    • port: indica la porta dell'URL
    • protocol: indica il protocollo della risorsa a cui punta l'URL (per esempio FTP o HTTP)
    • search: restituisce l'eventuale querystring (ad esempio pagina.htm?name=Mario&cognome=Rossi)
  • target: il valore dell'attributo target del link

Ad esempio possiamo decidere di impostare il target di tutti i link nella pagina a _blank:

for (i in document.links) {
 document.links[i].target = "_blank"; //imposta l'attributo target
}

L'array images

Analogamente all'array links, esiste anche un array images che permette di accedere a tutte le immagini presenti nella pagina.
Rispetto a links, questo array presenta una differenza: è possibile accedere agli elementi della pagina anche attraverso il loro attributo name. Ad esempio:

<img name="logo" src="logo.png" width="130px" height="130px" />

Possiamo accedere a quell'immagine tramite l'indice numerico oppure tramite il nome, in questo modo:

document.images["logo"]

L'oggetto image espone come proprietà gli attributi di qualsiasi immagine HTML, come src, border, ecc... Presenta inoltre un'interessate proprietà complete che restituisce true se l'immagine è già stata caricata dal browser.