Introducció al DOM

Índex
- 1.Naixement i evolució del DOM
- 2.El model estàndard d'objectes
- 2.1.Jerarquia d'elements
- 2.2.Accés als nodes
- 2.3.Manipulació dels nodes
- 2.3.1.Modificació de nodes
- 2.3.2.Creació i inserció de nodes
- 3.Els objectes del BOM
- 3.1.L'objecte Window
- 3.1.1.El mètode open
- 3.1.2.Quadres de diàleg
- 3.1.3.Els mètodes setTimeout i clearTimeout
- 3.1.4.El mètode moveBy
- 3.2.L'objecte Location
- 3.3.L'objecte History
- 3.4.L'objecte Screen
- 3.5.L'objecte Navigator
- 3.6.L'objecte MimeType
- 3.7.L'objecte Plugin
- 3.1.L'objecte Window
- 4.Els objectes de DOM
- 4.1.L'objecte Document
- 4.2.L'objecte a, Anchor, Link i Area
- 4.3.L'objecte Image
- 4.4.L'objecte Form
- 4.4.1.Els objectes Hidden, Text, Textarea, Password, URL, Search i Email
- 4.4.2.L'objecte Range i Number
- 4.4.3.L'objecte FileUpload, File
- 4.4.4.Els objectes Button, Reset i Submit
- 4.4.5.L'objecte Radio
- 4.4.6.L'objecte Checkbox
- 4.4.7.L'objecte Select
- 4.4.8.L'objecte Option
- 5.Gestió d'esdeveniments
- Activitats
1.Naixement i evolució del DOM
-
BOM (browser object model): defineix l'accés a las característiques del navegador.
-
DOM (document object model): defineix l'accés al contingut del document que es mostra en la finestra del navegador. De manera que conté tots els objectes que formen part de la pàgina HTML.
-
Model tradicional d'objectes (Netscape 2 i Internet Explorer 3)
-
Model tradicional estès (Netscape 3)
-
Model d'objectes d'HTML dinàmic (Netscape 4 i Internet Explorer 4)
-
Model d'objectes de navegador tradicional + DOM estàndard (a partir de Nestcape 6 i Internet Explorer 5)
1.1.El model tradicional

-
Document: és l'objecte que proporciona accés a elements HTML de la pàgina com les ancores, els enllaços i els elements dels formularis, però a més disposa d'un conjunt de propietats que defineixen l'aspecte de la pàgina, com el color del fons o del text.
-
Frames[]: és un array que conté els marcs de la pàgina, de manera que cada marc, al seu torn, fa referència a un objecte Window.
-
History: és un objecte que conté la col·lecció d'adreces URL visitades per l'usuari.
-
Location: és un objecte que conté l'URL actual del navegador.
-
Navigator: és un objecte que conté les característiques bàsiques del navegador (versió, tipus, etc.).
1.2.Model tradicional estès

<a href="#" onmouseover="document.images[0].src'/images/botóON.gif' " onmouseout="document.images[1].src'/images/botóOFF.gif' "> <img src="/images/botóOFF.gif"> </a>
1.3.Model d'objectes d'HTML dinàmic
1.3.1.Netscape 4
-
ids: que permet l'assignació de fulls d'estil a elements HTML amb l'atribut “id” establert.
-
classes: que permet l'assignació de fulls d'estil a elements HTML amb l'atribut “class” establert.
-
tags: que permet l'assignació de fulls d'estil a elements HTML lliures.
-
layers[]: array de capes del document.
-
Van aparèixer nous controladors d'esdeveniments de ratolí i de teclat com onmouseup/down i onkeyup/down.
-
Va aparèixer un nou model de gestió d'esdeveniments que fa que els esdeveniments facin un recorregut des dels objectes de la part superior de la jerarquia i descendeixin fins a arribar a l'objecte en el qual s'ha creat l'esdeveniment.
1.3.2.Internet Explorer 4
-
all[]: array que conté totes les etiquetes HTML del document.
-
applets[]: array que conté totes les miniaplicacions del document.
-
children[]: array de tots els elements fill de l'objecte.
-
embeds[]: array format pels objectes incrustats del document.
-
images[]: array d'imatges del document.
-
scripts[]: array de scripts del document.
-
styleSheets[]: array d'objectes Style del document.
var element = document.all[2]; //element referencia el tercer objete del //document HTML var element2 = document.all["Enviar"]; //element2 referencia l'objeto del //document HTML con amb "Enviar"
1.4.Model d'objectes del DOM estàndard
-
Nucli del DOM: especifica un model de gestió de document format per etiquetes amb una estructura jeràrquica.
-
DOM HTML: especifica una extensió de l'anterior per al seu ús amb HTML, proporciona les característiques necessàries per a gestionar documents HTML i utilitza una sintaxi similar als models d'objectes tradicionals.
-
Esdeveniments DOM: especifica el control d'esdeveniments, tant d'esdeveniments d'interfície d'usuari com d’esdeveniments del DOM que es produeixen en modificar parts de l'estructura del document.
-
DOM CSS: especifica les interfícies que permeten gestionar les regles CSS des del llenguatge de programació.
-
DOM XML: és l'equivalent al DOM HTML, però en aquest cas es tracta de documents XML.
Per a conèixer el compliment de l'estàndard en les diferents versions dels motors de disseny, podeu consultar la Viquipèdia, on trobareu una comparativa entre aquests.
https://en.wikipedia.org/wiki/Comparison_of_layout _engines_(Document _Object_Model)
2.El model estàndard d'objectes
2.1.Jerarquia d'elements
<html> <head> <!DOCTYPE HTML PUBLIC "//W3C//DTD HTML 4.01 Transitional//EN" https://www.w3.org/TR/html4/loose.dtd> <title>Exemple d'accés</title> </head> <body> <h1 id="cab">Capçalera</h1> <hr> <! - -Comentari - - > <p id="p1">La jerarquia <b id="b1">organitza</b> els objectes</p> <form name="form1" id="form1"> <input type="text" name="camp1" id="camp1"> <input type="button" name="executa" id="executa" value="Executa"> </form> </body> </html>
-
L'etiqueta <html> conté totes etiquetes que defineixen la pàgina web.
-
L'etiqueta <head> conté l'etiqueta <title>.
-
L'etiqueta <body> conté les etiquetes <h1>, <hr>, <!--> i < p>, que al seu torn conté una etiqueta <b>.
-
L'etiqueta <form> conté dues etiquetes <input>.

Identificador |
Tipus |
Descripció |
---|---|---|
1 |
Element |
Una etiqueta HTML, per exemple <b>, <input> |
2 |
Atribut |
Un atribut d'una etiqueta HTML, per exemple align=”center” |
3 |
Text |
Un text inclòs en una etiqueta HTML, per exemple a la nostra senzilla pàgina HTML “Exemple d'accés” |
8 |
Comentari |
Un comentari HTML, per exemple: “Comentari” |
9 |
Document |
Document arrel del document, és a dir l'etiqueta <html> |
10 |
Tipus document |
Una definició del tipus de document, es tracta de l'etiqueta !DOCTYPE, per exemple: <!DOCTYPE HTML PUBLIC “//W3C//DTD HTML 4.01 Transitional//EN” https://www.w3.org/TR/html4/loose.dtd> |


-
L'etiqueta P és el node pare i disposa de tres fills: el node de text “La jerarquia”, el node element “B” i el node de text “els objectes”.
-
L'ordre dels fills coincideix amb l’indicat en el punt anterior, és a dir, el primer fill de “P” és el node de text “La jerarquia”, el següent és el node element “B”, i l'últim, el node de text “els objectes”.
-
El node de text “organitza” és fill del node element “B” però no del node “P”, sí que seria descendent d'aquest (nét).
2.2.Accés als nodes
var element= document.getElementById("camp1"); var msg = "Nom: " + element.nodeName + "\n"; msg += "Tipus: " + element.nodeType + "\n"; msg += "Valor: "+ element.nodeValue + "\n"; alert(msg);

Propietats |
Descripció |
---|---|
nodeName |
Retorna una cadena amb el nom del node. |
nodeValue |
Retorna una cadena amb el valor del node, solament aplicable a nodes de tipus text. |
nodeType |
Retorna un nombre que especifica el tipus de node. |
parentNode |
Retorna una referència al node pare. |
firstChild |
Retorna una referència al primer fill. |
lastChild |
Retorna una referència a l'últim fill. |
previousSibling |
Retorna una referència al germà gran. |
nextSibling |
Retorna una referència al germà petit. |
childNodes |
Retorna un array amb els nodes fills. |
attributes |
Retorna un array amb els atributs del node. |
ownerDocument |
Retorna l'objecte Document que el conté. |
<html> <head> </head> <body> <p id="p1" align="center">Un exemple de <em>recorregut</em> molt senzill</p> <script type="text/javascript"> function tipusNode(node){ var temp = ""; temp += "Nom: "+nodo.nodeName+"\n"; temp += "Tipus: "+nodo.nodeType+"\n"; temp +="Valor: "+nodo.nodeValue+"\n\n"; return temp; } var nodeActual = document.getElementById("p1"); var msg = tipusNode(nodeActual); nodeActual = nodeActual.firstChild; msg += tipusNode(nodeActual); nodeActual = nodeActual.nextSibling; msg += tipusNode(nodeActual); nodeActual = nodeActual.firstChild; msg += tipusNode(nodeActual); nodeActual = nodeActual.parentNode; msg += tipusNode(nodeActual); nodeActual = nodeActual.previousSibling; msg += tipusNode(nodeActual); nodeActual = nodeActual.parentNode; msg += tipusNode(nodeActual); nodeActual = nodeActual.lastChild; msg += tipusNode(nodeActual); alert(msg); </script> </body> </html>

if (nodeActual.hasChildNodes()) nodeActual=nodeActual.firstChild; if (nodeActual.parentNode) nodeActual=nodeActual.parentNode; if (nodeActual.nextSibling) nodeActual=nodeActual.nextSibling;
function mouNode(elementActual, direccio){ switch (direccio){ case "previousSibling": if (elementActual.previousSibling) elementActual=elementActual.previousSibling; else alert("No té germà anterior"); break; case "nextSibling": if (elementActual.nextSibling) elementActual=elementActual.nextSibling; else alert("No té germà posterior"); break; case "parent": if (elementActual.parentNode) elementActual=elementActual.parentNode; else alert("No té pare"); break; case "firstChild": if (elementActual.hasChildNodes()) elementActual=elementoActual.firstChild; else alert("No té fills"); break; case "lastChild": if (elementActual.hasChildNodes()) elementActual=elementActual.lastChild; else alert("No té fills"); break; default: alert("Crida a la direcció errònia"); } return (elementActual); }
Mètode |
Descripció |
---|---|
getElementById() |
Retorna l'objecte l'atribut del qual “id” coincideix amb el passat com a paràmetre. |
getElementsByName() |
Retorna una llista amb els objectes amb el valor en l'atribut “name” que es passa com a paràmetre. |
getElementsByTagName() |
Retorna una llista amb els objectes l'etiqueta dels quals HTML se li passa com a paràmetre. |
documentElement |
Retorna l'objecte arrel, és a dir, l'etiqueta <html>. |
body |
Retorna l'objecte corresponent a l'etiqueta <body>. |
2.3.Manipulació dels nodes
-
Modificació de nodes: modificant-ne el contingut o els atributs.
-
Inserció o eliminació de nodes: intercalant un nou node en una certa posició en la jerarquia o eliminant un dels nodes de l'estructura.
2.3.1.Modificació de nodes
var element= document.getElementById("p1").firstChild; element.data ="L'estructura";
Mètode |
Descripció |
---|---|
appendData(cadena) |
Afegeix la cadena al final del node de text. |
deleteData(offset, quantitat) |
Esborra la quantitat de caràcters començant per l'índex especificat per offset. |
insertData(offset, cadena) |
Insereix el valor de la cadena començant per l'índex especificat en offset. |
replaceData(offset, quantitat, cadena) |
Reemplaça la quantitat de caràcters de text en el node començant per offset amb els caràcters especificats en la cadena. |
splitText(offset) |
Divideix el node de text en dues peces en l'índex donat en offset. Retorna la part dreta de la divisió en un nou node de text i de la part esquerra en l'original. |
substringData(offset, quantitat) |
Retorna una cadena corresponent a la subcadena que comença per l'índex offset i contiua fins a una quantitat de caràcters. |
var element= document.getElementById("camp1"); element.setAttribute("value","Introdueix text...");
Mètode |
Descripció |
---|---|
getAttribute(nom) |
Retorna el valor de l'atribut passat com a paràmetre. |
setAttribute(nom,valor) |
Assigna l'atribut amb el nom i valor passats com a paràmetres. |
removeAttribute(nom) |
Elimina l'atribut passat com a paràmetre. |
2.3.2.Creació i inserció de nodes
-
Creació del nou node que es vol inserir.
-
Localització de la ubicació en la jerarquia en què s’inserirà.
-
Inserció del nou node en la ubicació adequada.
nouParagraf = document.createElement("P");
nouText = document.createTextNode("Node nou de text");
Mètode |
Descripció |
---|---|
createElement(etiqueta) |
Crea un node del tipus element amb l'etiqueta passada com a paràmetre. |
createTextNode(cadena) |
Crea un node de text amb la cadena passada com a paràmetre. |
createComment(cadena) |
Crea un node de comentari amb la cadena passada com a paràmetre. |
createAttribute(nom) |
Crea un atribut per a un element especificat per la cadena nom. S’utilitza rarament. |
function clonaIcopia(idNodeC,idNodeI){ var nodeAClonar = document.getElementById(idNodeC); var nodeClonat = nodeAClonar.cloneNode(true); var puntInsercio = document.getElementById(idNodeI); puntInsercio.appendChild(nodeClonat); }
-
Rep dos paràmetres, el primer és l’“id” del node que es clonarà, i el segon paràmetre és l’“id” del node al qual s’inserirà el clon com a fill.
-
La variable nodeAClonar és la referència al node que es vol clonar, localitzat amb la funció getElementById
-
La variable nodeClonat és la referència al nou node que s'ha clonat. En passar-lo a la funció cloneNode, el paràmetre “true” clonarà no solament l'element en si, sinó també tots els seus fills.
-
La variable puntInsercio és la referència del node pare al qual s’inserirà en la línia de codi següent el node clonat.
-
L'última línia de codi mostra un nou mètode que serà presentat a continuació, però és intuïtiu pensar que el mètode està inserint el node clonat com a fill del node puntInsercio.
Mètode |
Descripció |
---|---|
insertBefore(nouNode, nodeFill) |
S'especifica davant de quin fill “nodeFill” es vol inserir el node “nouNode” |
appendChild(nouNode) |
Afegeix el node “nouNode” al final de la llista dels fills del node que han cridat el mètode. |
var nouNode = document.getElementById("form1").cloneNode(true); var pare = document.getElementById("cap"); padre.appendChild(nouNode);
-
Es crea un clon d'un formulari identificat amb l'id “form1”, ja que no solament es clona l'etiqueta del formulari sinó totes les seves filles en passar com a paràmetre del mètode cloneNode el valor true.
-
Es localitza el node pare sobre el qual s'inserirà el formulari; aquest està identificat amb l'id “cab”.
-
El codi finalitza amb l'addició del formulari com el més petit dels fills del node “cab”, per a la qual cosa s'empra el mètode "appendChild".
nodeActual.removeChild(nodeActual.lastChild);
3.Els objectes del BOM
-
Especificació del DOM dels navegadors basat en Mozilla:
https://developer.mozilla.org/en/Gecko_DOM_Reference -
Especificació del DOM dels navegadors Internet Explorer:
https://msdn.microsoft.com/en-us/default.aspx
3.1.L'objecte Window
-
L'etiquetes body o frameset d'HTML
-
El mètode “open” de JavaScript.
window.nom_propietat; window.nom_metode([paràmetres]);
nom_propietat nom_metode([paràmetres])
Nom |
Descripció |
Exemple |
---|---|---|
closed |
És un valor booleà que indica si una finestra ha estat tancada. Quan es tanca una finestra, l'objecte Window contínua existint, però amb el valor d'aquesta propietat true. És de només lectura. |
finestra = window.open( 'doc.htm','finestra1', 'width=400, height=100' ) ... if (finestra.closed) alert("tancada") else alert("oberta") |
defaultStatus |
És el missatge per defecte que es veu en la barra d'estat del navegador |
window.defaultStatus="Pàgina índex" |
document |
Fa referència a l'objecte Document contingut en la finestra. |
|
frames |
És un array d'objectes frame. Els frames són els generats per l'etiqueta Frame del FRAMESET contingut en la pàgina, i en l'array estan en l'ordre en què s'han creat en el codi HTML. És de només lectura. |
En una pàgina que contingui dos frames, es pot accedir a aquests de la manera següent: parent.frames["findex"] parent.frames["fcontingut"] o bé parent.frames[0] parent.frames[1] |
history |
Fa referència a l'objecte History contingut en la finestra. |
|
length |
Conté el nombre de frames de la finestra. És de només lectura. |
numframes = window.length; if (numframes == 0) alert("no conté frames"); else alert("conté "+numframes+" frames"); |
location |
Fa referència a l'objecte Location contingut en la finestra. |
|
name |
Cadena de text que especifica el nom de la finestra o marc. És de només lectura. |
finestra = window.open( 'doc.htm','finestra1','width=400, height=100' ) alert(finestra.name) |
navigator |
Fa referència a l'objecte Navigator contingut en la finestra. |
|
opener |
Fa referència a l'objecte Window que ha obert la finestra actual. Aquesta propietat persisteix encara que el document que ha fet la crida s'hagi descarregat. |
Tanca la finestra que ha obert la finestra actual: window.opener.close() Tanca la finestra del navegador: top.opener.close() |
parent |
Fa referència a l'objecte Window o Frame pare del marc actual. És la finestra que conté el frameset. |
En una pàgina que contingui dos frames, es pot accedir al segon des del primer amb la sentència següent: parent.frames[1] |
screen |
Fa referència a l'objecte Screen del navegador. |
|
self |
És sinònim de la finestra actual. |
|
status |
Especifica el text que es veu en la barra d'estat del navegador. |
function ini_status() { window.status = "Cliqui en aquest enllaç per accedir a l'índex" } <a href="índex.htm" onMouseOver = "ini_status()">Índex</a> |
top |
Fa referència a l'objecte Window superior en la jerarquia d'objectes del document. S'utilitza per a accedir a l’objecte Window contenidor des d'un marc. |
top.close() |
window |
És la finestra o el frame actual. |
Nom |
Descripció |
Sintaxi |
Paràmetres |
Retorn |
---|---|---|---|---|
alert |
Obre un quadre de diàleg amb un missatge i el botó Acceptar. |
alert(cadena de text) |
String (cadena de text) |
|
blur |
Elimina el focus de la finestra o frame especificats. |
blur() |
||
clearInterval |
Cancel·la el timeout que s’ha inicialitzat amb el mètode setInterval. |
clearInterval(intervalID) |
intervalID s'inicialitza amb la crida al mètode setInterval prèvia. |
|
clearTimeout |
Cancel·la el timeout que s’ha inicialitzat amb el mètode setTimeout. |
clearTimeout (intervalID) |
intervalID s'inicialitza amb la crida al mètode setTimeout prèvia. |
|
close |
Tanca la finestra especificada. |
close() |
||
confirm |
Obre un quadre de diàleg amb un missatge i els botons Acceptar i Cancel·lar. |
confirm("missatge") |
String |
true si l'usuari prem Acceptar, i false si prem Cancel·lar. |
focus |
Assigna el focus a la finestra o frame especificat. |
focus() |
||
moveBy |
Mou la finestra a la posició relativa respecte a la seva posició actual el nombre de píxels especificats. |
moveBy(horitzontal, vertical) |
Horitzontal: nombre de píxels per al desplaçament horitzontal. Vertical: nombre de píxels per al desplaçament vertical. |
|
moveTo |
Mou la cantonada superior esquerra de la finestra a la posició absoluta de la pantalla especificada en píxels. |
moveTo(x, i) |
x: coordenada x y: coordenada y |
|
open |
Obre una nova finestra del navegador. |
open(URL, nom, característiques) |
URL: cadena de text que especifica l’URL a visualitzar en la nova finestra. Nom: text que indica el nom de la finestra. |
|
|
Fa que aparegui el diàleg d'impressió. |
print() |
||
prompt |
Obre un quadre de diàleg amb un missatge i un camp d'entrada de text. |
prompt(missatge, [text]) |
Missatge: text que mostra el quadre de diàleg. Text: opcional, text que per defecte surt en el camp d'entrada de text. |
Dada introduïda per l'usuari. |
resizeBy |
Redimensiona la finestra movent la cantonada inferior dreta segons els valors relatius especificats. |
resizeBy(horitzontal, vertical) |
Horitzontal: nombre de píxels a sumar o restar a la dimensió horitzontal. Vertical: nombre de píxels a sumar o restar a la dimensió vertical. |
|
resizeTo |
Redimensiona la finestra en els valors especificats. |
resizeTo(amplada, altura) |
Amplada: amplada en píxels de la finestra. Altura: altura en píxels de la finestra. |
|
scrollBy |
Fa un scroll de l'àrea de la finestra, segons els valors relatius a la posició actual. |
scrollBy(x,y) |
x: nombre de píxels a sumar o restar, per a l’scroll horitzontal. y: nombre de píxels a sumar o restar, per a l’scroll vertical. |
|
scrollTo |
Fa un scroll de l'àrea de la finestra, segons els valors absoluts indicats. |
scrollTo(x, y) |
x: coordenada x en píxels, de l'àrea a visualitzar. y: coordenada y en píxels, de l'àrea a visualitzar. |
|
setInterval |
Executa una funció, cada vegada que transcorre el temps especificat i fins que s'executa el mètode clearInterval. |
setInterval(expressió, temps) o bé setInterval(funció, temps, param1, ..., paramN) |
Temps: nombre de mil·lisegons |
Identificador |
setTimeout |
Executa una funció, una vegada transcorregut el temps especificat. |
setTimeout(expressió, temps) o bé setTimeout(funció, temps, param1, ..., paramN) |
Temps: nombre de mil·lisegons |
Identificador |
3.1.1.El mètode open
open(url, nom, característiques, reemplaçar)
-
url és l'adreça que indica el document que es carregarà en la finestra.
-
nom és el nom de la finestra (que s'utilitzarà per a referenciar-la posteriorment).
-
característiques és una cadena delimitada per comes que indica un conjunt de propietats de la finestra que es crearà.
-
reemplaçar és un valor lògic i opcional que indica si l'URL especificat ha de reemplaçar el contingut de la finestra actual.
finestraUoc = open("https://www.uoc.edu", "UOC", "height=300, width=200");
finestraUoc.close();
-
alwaysLowered: valor booleà que indica que la nova finestra quedarà per sota de la resta de finestres.
-
alwaysRaised: valor booleà que indica que la nova finestra quedarà per sobre de la resta de finestres.
-
dependent: valor booleà que indica que la finestra creada és depenent de la finestra pare. Això implica que en tancar una finestra es tanquen totes les dependents d'aquesta.
-
directories: valor booleà que indica que la nova finestra contindrà els botons de directori estàndard.
-
height: valor en píxels que especifica l'altura de la finestra.
-
hotkeys: valor booleà que indica si les tecles ràpides del navegador estan habilitades en la nova finestra.
-
innerHeight: valor en píxels que especifica l'alt del contingut de la finestra.
-
innerWidth: valor en píxels que especifica l'amplada del contingut de la finestra.
-
left: valor en píxels que especifica la coordenada x en la qual apareixerà la nova finestra.
-
location: valor booleà que indica si la barra d'adreces ha de mostrar-se en la finestra.
-
menubar: valor booleà que indica si la nova finestra contindrà la barra de menú.
-
outerHeight: valor en píxels que especifica la dimensió vertical de les vores de la nova finestra.
-
resizable: valor booleà que indica si l'usuari podrà canviar la grandària de la nova finestra.
-
scrollbars: valor booleà que indica si la nova finestra contindrà les barres de desplaçament (o scroll) quan el document excedeixi els límits de la finestra.
-
status: valor booleà que indica si la nova finestra contindrà la barra d'estat.
-
titlebar: valor booleà que indica si la nova finestra contindrà la barra de títol.
-
toolbar: valor booleà que indica si la nova finestra contindrà la barra d'eines estàndard.
-
top: valor en píxels que especifica la coordenada y en la qual apareixerà la nova finestra.
-
width: valor en píxels que especifica l'amplada de la finestra.
-
z-lock: valor booleà que especifica si no es podrà canviar l'ordre de pila relatiu a altres finestres, fins i tot si aquesta obté el focus.
function obrir(){ url= "https://www.uoc.edu"; caract = "left=50, top=50, status=yes, menubar=yes, toolbar=no, width=590, height=250, directory=no, resize=no, scrollbars=yes"; return window.open(url,"Exemple obertura",caract); }
3.1.2.Quadres de diàleg
-
alert(). Crea una finestra amb un missatge i el botó Acceptar que tanca la finestra.
-
confirm(). Crea una finestra que mostra un missatge i espera que l'usuari respongui prement el botó Acceptar o Cancel·lar. Aquest retorna el valor true si s'ha premut el botó Acceptar i false si s'ha premut Cancel·lar
-
prompt(). Crea una finestra que mostra un missatge i sol·licita dades a l'usuari a partir d'un camp de text. Igual que confirm() disposa dels botons Acceptar i Cancel·lar. En cas de pressionar Cancel·lar, el mètode retornarà el valor null, en cas contrari, retornarà el contingut del camp de text introduït per l'usuari.
var entrada = prompt("Entra una dada: ", 0); alert("La dada introduïda és: " + entrada); var resposta = confirm("Vols tancar la finestra?"); if (resposta==true)window.close();



3.1.3.Els mètodes setTimeout i clearTimeout
var timerID = null; var timerRunning = false; function stopRellotge(){ if(timerRunning) clearTimeout(timerID); timerRunning = false; } function startRellotge(){ stopRellotge();//S'ha d'assegurar que el rellotge és parat ver(); } function ver(){ var now = new Date(); var hours = now.getHours(); var minutes = now.getMinutes(); var seconds = now.getSeconds(); var timeValue = "" + ((hours > 12) ? hours - 12 : hours); timeValue += ((minutes < 10) ? ":0" : ":") + minutes; timeValue += ((seconds < 10) ? ":0" : ":") + seconds; timeValue += (hours >= 12) ? " P.M." : " A.M."; document.reloj.face.value = timeValue; timerID = setTimeout("ver()",1000); timerRunning = true; }
-
Fer una crida a la funció “startRellotge()”.
-
Disposar d'un formulari i un camp de text que es diguin rellotge i face respectivament.
3.1.4.El mètode moveBy
var v1; function obrir(){ var caract = "left=200, top=10, width=400, height=210, statusbar=no, menubar=no, directory=no, resize=no, scrollbars=no"; v1=window.open("Moviment.html","Finestra mòbil",caract); ini_moure() } function ini_moure(){ setInterval('moure()',500); } function moure(){ v1.moveBy(5,10); }
3.2.L'objecte Location
protocol//host:port/pathname#hash?search
https://www.uoc.edu:8080/assist/extensions.html#topic1?x=7&y=2
-
Protocol: representa l'inici de l’URL, és a dir el protocol web que inclou els dos punts (http:)
-
Host: representa el domini o l'adreça IP de l'ordinador amfitrió a la Xarxa (www.uoc.edu);
-
Port: representa el port de comunicació que el servidor fa servir per a les comunicacions (8080).
-
Pathname: representa la ruta del document (assist/extensions/).
-
Hash: representa l'ancora en l’URL. Inclòs el signe # (només per a http).
-
Search: representa la informació per a una cerca (query). Inclou el signe ?, que indica l'inici (només per a http). Cada element de la cerca està compost pel nom de la variable i el seu valor, i cada element se separa del següent pel signe &.
window.location.href="https://www.uoc.edu"; window.location="https://www.uoc.edu";
Nom |
Descripció |
Exemple |
---|---|---|
hash |
Nom d'àncora en l’URL. |
alert(window.location.hash) |
host |
Nom del servidor o del domini que forma part del paràmetre hostname. |
window.location.host = “www.uoc.edu” |
hostname |
Conté el nom complet del servidor, el host i el port. |
window.location.host = “www.uoc.edu:8080” |
href |
Especifica l’URL complet. |
window.location.href="https://www.uoc.es/" |
pathname |
Especifica la ruta del document. |
window.location.pathname = “/js/exemples/rellotge.html” |
port |
Port de comunicacions que usa el servidor. |
window.location.port = 80 |
protocol |
Inici de l’URL que especifica la forma d'accés. |
window.location.protocol = “http:” |
search |
Especifica la cerca en l’URL. |
window.location.search = “?cp=2&scp=4” |
Nom |
Descripció |
Sintaxi |
Paràmetres |
---|---|---|---|
assign |
És equivalent a modificar l’URL mitjançant location.href. |
assign(url) |
url: cadena de text |
reload |
Actualitza el document. |
reload([forceGet]) |
Opcional. Si és true força la càrrega del document amb el mètode GET. |
replace |
Carrega l'URL especificat en la finestra i substitueix el que hi havia. |
replace(url) |
url: cadena de text |
<html> <head> <title>Ús de l'objecte location</title> <script type="text/javascript"> function mostrarImatge(img) { document.images[0].src=img; } </script> </head> <body> <form name="elmeuForm"> <h2>Triï un regal:</h2> <p> <input type="radio" name="imatge" value="imatge1" checked onclick="mostrarImatge('img/regal1.gif')"> Verd <br> <input type ="radio" name ="imatge" value ="imatge2" onclick="mostrarImatge('img/regal2.gif')"> Groc <br> <input type ="radio" name ="imatge" value ="imatge3" onclick="mostrarImatge('img/regal3.gif')"> Rojo </p> <p> <img name="lameva_imatge" SRC="img/regal1.gif" align="center"> <input type ="button" value="Actualitzar" onclick="window.location.reload()"> <input type="button" value="Veure regal" onclick="window.location.replace('regal.htm')" name="button"> </p> </form> </body> </html>
3.3.L'objecte History
Nom |
Descripció |
Exemple |
---|---|---|
length |
Nombre d'elements de l'array. És de només lectura. |
alert(history.length) |
state |
Retorna el valor de l'estat de l'objecte. |
alert(history.state) |
Nom |
Descripció |
Sintaxi |
Paràmetres |
---|---|---|---|
back |
Carrega l'URL anterior de l'historial. |
back() |
|
forward |
Carrega l’URL següent de l'historial. |
forward() |
|
go |
Carrega un URL de l'historial. |
go(pos) go(url) |
pos: enter que representa la posició relativa en l'historial url: string que representa un url de l'historial |
-
El mètode back té el mateix efecte que usar el mètode go de la forma: history.go(-1).
-
El mètode forward té el mateix efecte que usar el mètode go de la forma: history.go(1).
-
La forma del mètode go, go(0), té com a efecte l'actualització de la pàgina actual.
<html> <head> </head> <body> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td bgcolor="#000000"> <div align="center"><a href="javascript:history.back()">Anterior</a></div> </td> <td bgcolor="#000000"> <div align="center"><a href="javascript:history.forward()">Següent</a></div> </td> <td bgcolor="#000000"> <div align="center"><a href="javascript:history.go(0)">Actualitzar</a></div> </td> </tr> </table> <p align="center">Pàgina 1</p> <div align="center"> <p><a href="https://www.uoc.edu">Pàgina 2</a></p> <p><a href="https://www.google.com">Pàgina 3</a></p> </div> </body> </html>
3.4.L'objecte Screen
Nom |
Descripció |
---|---|
availHeight |
Altura en píxels de la pantalla sense explicar les possibles utilitats que pugui mostrar el sistema en pantalla, com les barres d'eines. |
availWidth |
Amplada en píxels de la pantalla sense explicar les possibles utilitats que pugui mostrar el sistema en pantalla, com les barres d'eines. |
colorDepth |
Si hi ha una paleta en ús, indica la profunditat de color en bits per píxel; en un altre cas, deriva de screen.pixelDepth. |
height |
Altura de la pantalla en píxels. |
pixelDepth |
Resolució de pantalla en bits per píxel. |
width |
Amplada de la pantalla en píxels. |
3.5.L'objecte Navigator
Nom |
Descripció |
Exemple |
---|---|---|
appCodeName |
Nom del codi del navegador. |
document.write("El codi del seu navegador és “ + navigator.appCodeName) |
appName |
Nom del navegador. |
document.write("El nom del seu navegador és “ + navigator.appName) |
appVersion |
Versió del navegador. |
document.write("La versió del seu navegador és “ + navigator.appVersion) |
cookieEnabled |
Indica si el navegador té actives les galetes. |
if (navigator.cookieEnabled) alert("Les galetes estan activades en el navegador") |
mimeTypes |
Array de tots els tipus MIME suportats pel navegador. |
|
platform |
Sistema operatiu sobre el qual s'executa el navegador. |
alert(navigator.platform) Podria mostrar dades com Win32, Win16, Mac68k, MacPPC, etc. |
plugins |
Array de plugins instal·lats en el navegador. |
|
userAgent |
Valor de la capçalera user-agent enviada en el protocol HTTP, del client al servidor. |
document.write("La capçalera user-agent enviada en el protocol HTTP és“ + navigator.userAgent) |
vendor |
Cadena que conté informació de la marca comercial del navegador. |
Nom |
Descripció |
Sintaxi |
Retorn |
---|---|---|---|
javaEnabled |
Comprova si l'opció Java està activada. |
javaEnabled() |
True si està actiu Java, i False en cas contrari. |
<html> <head> </head> <body> <h1>Propietats del navegador</h1> <script type="text/javascript"> document.write("Nom codi: <b>" + navigator.appCodeName + "</b><br>") document.write("Nom: <b>" + navigator.appName + "</b><br>") document.write("Versió: <b>" + navigator.appVersion + "</b><br>") document.write("Idioma: <b>" + navigator.language + "</b><br>") document.write("Tipus MIME: <b>" + navigator.mimeTypes + "</b><br>") document.write("Plataforma: <b>" + navigator.platform + "</b><br>") document.write("Connectors: <b>" + navigator.plugins + "</b><br>") document.write("Capçalera URL: <b>" + navigator.userAgent + "</b><br>") </script> </body> </html>
3.6.L'objecte MimeType
navigator.mimeTypes[index]
Nom |
Descripció |
Exemple |
---|---|---|
description |
Descripció del tipus MIME. |
navigator.mimeTypes["image/jpeg"].description El resultat seria: JPEG Image |
enabledPlugin |
Referència a l'objecte plugin configurat pel tipus MIME. Si no n’hi ha cap, la propietat val null. |
navigator.mimeTypes["image/jpeg"].enabledPlugins |
suffixes |
String que conté la llista d'extensions acceptades pel tipus MIME. |
navigator.mimeTypes["image/jpeg"].suffixes El resultat seria: jpeg, jpg, jpe, jfif, pjpeg, pjp |
type |
Nom del tipus MIME. |
navigator.mimeTypes["image/jpeg"].type El resultat seria: image/jpeg |
<html> <head> </head> <body> <h1>Propietats de cada objecte mimeType del client:</h1> <script type="text/javascript"> document.writeln("<table border=1><tr valing=top>"+ "<th align=left>i"+ " <th align=left>type"+ "<th align=left>description"+ " <th align=left>suffixes"+ " <th align=left>enabledPlugin.name </tr>") for (i=0; i < navigator.mimeTypes.length; i++) { document.writeln("<tr valing=top><td tipus='fuoc'>"+i+" <td tipus='fuoc'>"+ navigator.mimeTypes[i].type+ " <td tipus='fuoc'>"+ navigator.mimeTypes[i].description+" <td tipus='fuoc'>"+navigator.mimeTypes[i].suffixes) if (navigator.mimeTypes[i].enabledPlugin==null) { document.writeln("<td tipus='fuoc'>None"+ " </tr>") } else { document.writeln("<td tipus='fuoc'>"+navigator.mimeTypes[i].enabledPlugin.name+" </tr>") } } document.writeln("</table>") </script> </body> </html>
3.7.L'objecte Plugin
Nom |
Descripció |
---|---|
description |
Descripció del plugin. És de només lectura. |
filename |
Nom del plugin en el disc. És de només lectura. |
length |
Nombre d'elements de l'array d'objectes MimeType. És de només lectura. |
name |
Nom del plugin. És de només lectura. |
<html> <head> </head> <body> <b>Propietats per a cada connector instal·lat en el client:</b><p> <script type="text/javascript"> document.writeln("<table botder=1><tr valign=top>"+ "<th valign=left>i" + "<th valign=left>name" + "<th valign=left>filename" + "<th valign=left>description"+ "<th valign=left># of types</tr>") for (i=0; i < navigator.plugins.length; i++) { document.writeln("<th valign=top><td tipus='fuoc'>"+i+ "<td tipus='fuoc'>", navigator.plugins[i].name+ "<td tipus='fuoc'>"+ navigator.plugins[i].filename+ "<td tipus='fuoc'>"+navigator.plugins[i].description+ "<td tipus='fuoc'>"+ navigator.plugins[i].length+ "</tr>") } document.writeln("</table>") </script> </body> </html>
4.Els objectes de DOM
4.1.L'objecte Document
Nom |
Descripció |
Exemple |
---|---|---|
anchors |
Array d'objectes anchor del document. És de només lectura. |
|
applets |
Array d'objectes miniaplicació del document. És de només lectura. |
|
cookie |
String que representa les galetes associades al document. |
|
doctype |
Retorna un objecte del tipus doctype del document HTML actual. |
alert(document.doctype.name); |
domain |
Cadena que conté el nom del domini des del qual es va carregar el document. |
document.domain="mon.com" |
embeds |
Array de tots els objectes incrustats en el document. És de només lectura. |
|
forms |
Array d'objectes form del document. És de només lectura. |
document.forms[i] o equivalentment: document.form_i |
images |
Array d'objectes image del document. És de només lectura. |
document.images[i] o equivalentment: document.image_i |
lastModified |
String que representa la data de l'última modificació del document. És de només lectura. |
document.write("Aquesta pàgina ha estat actualitzada " + document.lastModified) |
links |
Array d'objectes link del document. És de només lectura. |
document.links[i] |
plugins |
Array d'objectes plugin del document. És de només lectura. |
document.plugins[i] |
referrer |
URL del document que es crida en prémer un enllaç. És de només lectura. |
function obtenirRef() { return document.referrer } |
title |
String que representa el títol del document. És de només lectura. |
var finestra1 = window.open("https://www.uoc.es") var títol = finestra1.document.title |
URL |
String que representa l’URL complet del document. És de només lectura. |
document.write("L’URL actual és " + document.URL) |
-
L'ordre dels elements en els arrays, per a totes les propietats que els contenen, és el mateix ordre en el qual apareixen aquests elements en la pàgina.
-
La propietat domain només pot modificar-se de manera restringida. Inicialment, conté el domini del servidor web des del qual ha estat carregada la pàgina. Es pot modificar aquesta propietat, però només per un domini amb el mateix sufix. Per exemple, un script provinent de tot.mon.com pot canviar el domini per mon.com, però un script provinent de stars.com no pot. Una vegada s'ha canviat el valor de la propietat, no es pot retornar al seu valor original.
-
La propietat lastModified es deriva de les dades de la capçalera HTTP enviada pel servidor. Normalment, el servidor obté aquesta dada examinant la data de l'última modificació del fitxer. Aquesta informació no ha d’existir necessàriament en la capçalera. En aquest cas, JavaScript rep un 0 que visualitzaria la data January 1, 1970 GMT.
-
La propietat referrer està buida si el servidor no proveeix de la variable d'entorn que conté aquesta informació.
Nom |
Descripció |
Sintaxi |
Paràmetres |
---|---|---|---|
close |
Finalitza el flux de sortida al document i mostra el contingut escrit. |
close() |
|
open |
Obre el document per a l'escriptura. |
open([tipusMime, “replace”]) |
tipusMime: string que representa el tipus del document. Per defecte, és text/html. "replace": si s'omet aquesta paraula, el tipus MIME és text/html. En cas contrari, el nou document no s'afegeix en l'historial. |
write |
Escriu una expressió HTML en el document. |
document.write(expr1, ...,exprN) |
|
writeln |
Escriu una expressió HTML acabada en salt de línia. |
writeln(expr1, ... exprN) |
-
El mètode close finalitza la càrrega del document que havia començat amb el mètode open; quan això passa, en la barra d'estat del navegador apareix la frase "Llest".
-
Els possibles valors per al primer paràmetre del mètode open són:
-
text/html: especifica que el document conté text ASCII en format HTML.
-
text/plain: especifica que el document conté text ASCII net amb caràcters de finalització de línia per al text que es visualitza.
-
image/gif: especifica que el document conté bits codificats que constitueixen capçaleres GIF i dades de píxel.
-
image/jpeg: especifica que el document conté bits codificats que constitueixen capçaleres JPG i dades de píxel.
-
image/x-bitmap: especifica que el document conté bits codificats que constitueixen capçaleres bitmap i dades de píxel.
-
Valors per a plugins específics, per exemple, "application/x-director" carrega el plugin de Macromedia Shockwave. Aquests només són vàlids si el plugin està instal·lat.
-
<html> <head> <script type="text/javascript"> var lamevaFinestra function escriure_a_la_finestra() { var texto = "Exemple per a l'objecte Document" lamevaFinestra.document.open("text/html", "replace") lamevaFinestra.document.write("<p>" + texto) lamevaFinestra.document.write("<p>history.length es " + lamevaFinestra.history.length) lamevaFinestra.document.close() } </script> </head> <body> <script type="text/javascript"> lamevaFinestra=window.open("","",'toolbar=yes,scrollbars=yes,width=400,height=300') escriure_a_la_finestra() </script> </body> </html>
4.2.L'objecte a, Anchor, Link i Area
Nom |
Descripció |
Exemple |
---|---|---|
attributes[] |
Array amb els atributs de l'element. |
Area2.attributes[2]; mostra el tercer atribut si el té. |
disabled |
Valor lògic que indica si l'element està deshabilitat. |
Disponible = Area2.disabled; |
id |
Cadena que conté l'identificador únic de l'element. |
Ident = Area2.id; |
style |
Fa referència a l'objecte Style inserit en línia de l'element. |
|
tabIndex |
Valor numèric que indica l'ordre de tabulació de l'objecte. |
Nom |
Descripció |
Sintaxi |
Retorn |
---|---|---|---|
blur() |
Treu el focus de l'element. |
Area2.blur(): |
|
clic() |
Simula un clic del ratolí sobre l'objecte. |
Area2.clic(); |
|
focus() |
Assigna el focus a l'element. |
Area2.focus(); |
Nom |
Descripció |
Exemple |
---|---|---|
hash |
String començat per # que especifica un nom d'àncora en l’URL. |
Si l’URL és: https://mon.com/europa.htm#italia document.links[0].hash és: #italia |
host |
String que especifica el domini, subdomini del servidor. |
|
hostname |
String que conté el nom complet del host incloent el nom del servidor, el subdomini, el domini i el port. |
|
href |
String que especifica l’URL sencer. |
|
pathname |
String que conté la porció d'URL referent a la ruta. |
|
port |
Sring que representa el port de comunicacions que usa el servidor. |
|
protocol |
String que conté la porció d'URL referent al protocol. |
|
search |
String que especifica una cerca continguda en l’URL. |
|
target |
Nom de la finestra que visualitzarà el contingut de l'hyperlink. |
document.aindex.target="finestra1" |
text |
(Només per a l'objecte Area). Text corresponent a l'etiqueta A. |
https://mundo.com/europa.htm#italia
h = document.links[0].hash; document.links[0].hash = h;
##italia
4.3.L'objecte Image
-
L'etiqueta <img> d'HTML.
-
La forma: new Image (ample, alt), on els paràmetres són opcionals i indiquen el valor d'ample i alt de la imatge en píxels.
Nom |
Descripció |
Exemple |
---|---|---|
border |
String que especifica l'amplada en píxels de la vora de la imatge. És de només lectura (no suportat en HTML 5). |
function bordeImg(imagen) { if (imagen.border==0) alert('La imatge no té vora') else alert('La vora de la imatge és' + imatge.border) } |
complete |
Valor booleà que indica quan el navegador ha acabat de carregar la imatge. És de només lectura. |
|
height |
String que especifica l'altura en píxels de la imatge. És de només lectura. |
|
hspace |
String que especifica l'espai en píxels entre la vora dreta i esquerre de la imatge i el text que la segueix o la precedeix. És de només lectura (no suportat en HTML 5). |
|
name |
String que especifica el nom de la imatge. És de només lectura (no suportat en HTML 5, utilitzar l'atribut “id”). |
|
src |
String que especifica l’URL de la imatge. |
|
vspace |
String que especifica l'espai en píxels entre la vora superior i inferior de la imatge i el text que la segueix o la precedeix. És de només lectura (no suportat en HTML 5). |
|
width |
String que especifica l'amplada en píxels de la imatge. És de només lectura. |
4.4.L'objecte Form
Nom |
Descripció |
Exemple |
---|---|---|
action |
String que especifica l’URL de destinació quan s'envien les dades del formulari. |
document.elmeuForm.action = " mailto://pepe@jet.es" |
elements |
Array d'objectes corresponents als elements del formulari. És de només lectura. |
|
encoding |
String que especifica la codificació MIME del formulari. |
function obtenerCodif() { return document.elmeuForm.encoding } |
length |
Nombre d'elements del formulari. És de solament lectura. |
numele = elmeuForm.elements.length |
method |
String que especifica com i envia la informació del formulari al servidor. Pot tenir els valors get i post. |
function obtenirMetode() { return document.elmeuForm.method } |
name |
String que especifica el nom del formulari. |
for (var i = 0; i < document.elmeuForm. elements.length; i++){ document.write(document.elmeuForm. elements[i].name + "<BR>") } |
target |
document.elmeuForm.target = "finestra1" |
String que especifica la finestra en la qual apareixerà la resposta, una vegada el formulari s’hagi enviat. |
nom_formulari.nom_element.value nom_formulari.elements[posició].value
Nom |
Descripció |
Sintaxi |
---|---|---|
reset |
Simula un clic de ratolí en un botó de tipus reset. |
reset() |
submit |
Envia el formulari. |
submit() |
<html> <head> <script language="JavaScript" type="text/javascript"> function verificaEntrada(lletra) { if (lletra.value == 'A' || lletra.value == 'B') alert('Entrada correcta') else document.elmeuForm.reset() } </script> </head> <body bgcolor="#FFFFFF"> <form name="elmeuForm" onReset="alert('Introdueix A o B')"> Introdueix A o B: <input type="text" name="opció" size="5" onChange=verificaEntrada(this) maxlength="1"><P> </form> </body> </html>
4.4.1.Els objectes Hidden, Text, Textarea, Password, URL, Search i Email
-
L'objecte Hidden és un camp més del formulari, però no és visible quan es visualitza la pàgina en el navegador. Al no ser visible, l'usuari no pot modificar el seu valor, només es pot modificar des de la programació, canviant el valor de la propietat value. S'utilitza per enviar parells de dades (nomeni/valor) quan es fa un submit del formulari.
-
L'objecte Text és un camp del formulari en el qual l'usuari pot introduir text.
-
Els objectes URL, Search i Email, són objectes similars a l'objecte Text, el fet de diferenciar-los de Text ens pot ajudar a l'hora de realitzar validacions, o fins i tot pot fer que el navegador treballi amb aquests camps de manera diferent de com ho faria amb un objecte Text, per exemple, en el navegador d'un dispositiu mòbil a fi del tipus URL adaptarà el seu teclat per posar més accessibles les tecles amb el contingut típoco d'una URL com podrien ser “/” o “.com”.
-
L'objecte Password és un camp del formulari en el qual l'usuari pot introduir text. Cada caràcter introduït es visualitza en la pantalla mitjançant un asterisc.
-
L'objecte Textarea és un camp del formulari en el qual l'usuari pot introduir text en diverses línies. Per indicar en el text introduït un salt de línia, ha d'especificar-se el caràcter concret per a això. Aquest caràcter varia segons la plataforma: en Unix és \n; en Windows és \r; i en Macintosh és \n. JavaScript comprova aquests possibles carácteres i els trasllada a la plataforma de l'usuari. L'objecte Textarea es construeix mitjançant l'etiqueta <textarea> d'HTML.
Nom |
Descripció |
Exemple |
---|---|---|
form |
Referència a l'objecte form que el conté. És de solament lectura. |
<input type=hidden name=”any” value="2000"> ... <input name="b1" type="button" value="Canviar any" onClick="this.form.any.value = ‘2001’ "> |
name |
String que especifica el nom de l'objecte. |
document.elmeuForm.elements[i].name |
placeholder |
Cadena que apareixerà en l'objecte a tall d'exemple mentre el valor de l'objecte està buit (aquesta propietat no està disponible per a l'objecte Hidden). |
document.elmeuForm.elements[i].placeholder = “Escrigui el seu nom” |
readOnly |
Valor booleà que indica si el contingut de l'objecte és editable o no (aquesta propietat no està disponible per a l'objecte Hidden). |
document.elmeuForm.elements[i].readOnly = true |
type |
String que especifica el tipus de l'objecte. És de solament lectura. |
document.elmeuForm.elements[i].type |
value |
String que especifica el valor de l'objecte. |
document.write("El valor del camp és " + document.elmeuForm.any.value + "<BR>") |
Nom |
Descripció |
Sintaxi |
---|---|---|
blur |
Elimina el focus del camp de text. |
blur() |
focus |
Assigna el focus al camp de text. |
focus() |
select |
Selecciona l'àrea d'entrada del camp de text. |
select() |
4.4.2.L'objecte Range i Number
<input type="number" max="100" step="10">

<input type="range" id="myRange" value="75">

Nom |
Descripció |
Sintaxi |
---|---|---|
max |
Valor numèric que serveix per a indicar el valor màxim de l'objecte. |
document.elmeuForm.elements[i].max = 100 |
min |
Valor numèric que serveix per a indicar el valor mínim de l'objecte. |
document.elmeuForm.elements[i].min = 10 |
step |
Valor numèric que serveix per a especificar els intervals vàlids. Per exemple, si a la propietat min hi hem posat el valor de 2 i assignem un step amb el valor 3, el primer valor vàlid serà el 2, el següent el 5 i així successivament. En cas de no assignar un valor a min, es prendrà com a valor de partida el 0. |
document.elmeuForm.elements[i].step = 5 |
4.4.3.L'objecte FileUpload, File
<input type="file" size=50 name="fileu">

Nom |
Descripció |
---|---|
form |
Referència a l'objecte form que el conté. És de només lectura. |
multiple |
Valor booleà que indica si l'usuari pot seleccionar més d'un fitxer o no. |
name |
String que especifica el nom de l'objecte. |
type |
String que especifica el tipus de l'objecte. És de només lectura. |
value |
String que especifica el valor de l'objecte. |
4.4.4.Els objectes Button, Reset i Submit
-
L'objecte Button representa un botó del formulari que no té cap acció predefinida.
-
L'objecte Reset representa un botó del formulari, que té la particularitat de restablir els valors que per defecte tenen els elements del formulari.
-
L'objecte Submit representa un botó del formulari, que té la particularitat d'enviar les dades del formulari.
Nom |
Descripció |
---|---|
form |
Referència a l'objecte form que el conté. És de només lectura. |
name |
String que especifica el nom de l'objecte. |
type |
String que especifica el tipus de l'objecte. És de només lectura. |
value |
String que especifica el valor de l'objecte. |
Nom |
Descripció |
Sintaxi |
---|---|---|
clic |
Simula la pulsació del botó. |
click() |
4.4.5.L'objecte Radio
A quin grup d'edat pertanys?<br><br> <input type="radio" name="edat" value="1"> < 18 <input type="radio" name="edat" value="2"> 18 - 25 <input type="radio" name="edat" value="3" checked> 26 - 35 <input type="radio" name="edat" value="4"> > 35

Nom |
Descripció |
Exemple |
---|---|---|
checked |
Valor booleà que especifica si el botó està seleccionat o no (true si ho està, i false, en cas contrari). |
if ( document.elmeuForm.musica[0].checked == true) { alert(“Està seleccionada l'opció música clàssica” ) } |
defaultChecked |
Valor booleà que especifica l'estat per defecte del botó (true si està seleccionat per defecte, i false, en cas contrari). |
|
form |
Referència a l'objecte Form que el conté. És de només lectura. |
|
length |
Nombre d'objectes Radio en el grup. |
for ( i=0; i<elmeuForm.edat.length; i++ ){ if ( elmeuForm.edat[i].checked ) alert(i) } |
name |
String que especifica el nom de l'objecte. |
|
type |
String que especifica el tipus de l'objecte. És de només lectura. |
|
value |
String que especifica el valor associat al botó. |
Nom |
Descripció |
Sintaxi |
---|---|---|
click |
Simula la pulsació del botó. |
click() |
4.4.6.L'objecte Checkbox
Quins esports prefereix practicar?<br><br> <input type="checkbox" name="esports" value="1" checked> Halterofília <input type="checkbox" name="esports" value="2" checked> Esgrima <input type="checkbox" name="esports" value="3"> Natació <input type="checkbox" name="esports" value="4"> Tenis <input type="checkbox" name="esports" value="5"> Cap

Nom |
Descripció |
---|---|
checked |
Valor booleà que especifica si el botó està seleccionat o no (true si ho està i false en cas contrari). |
defaultChecked |
Valor booleà que especifica l'estat per defecte del botó (true si està seleccionat per defecte i false en cas contrari). |
form |
Referència a l'objecte form que el conté. És de només lectura. |
name |
String que especifica el nom de l'objecte. |
type |
String que especifica el tipus de l'objecte. És de només lectura. |
value |
String que especifica el valor associat al botó. |
Nom |
Descripció |
Sintaxi |
---|---|---|
clic |
Simula la pulsació del botó. |
click() |
4.4.7.L'objecte Select
Nom |
Descripció |
Exemple |
---|---|---|
form |
Referència a l'objecte Form que el conté. És de només lectura. |
|
length |
Nombre d'opcions en la llista. |
num = document.elmeuForm.llista.length |
name |
String que especifica el nom de l'objecte. |
for (var i = 0; i < document.elmeuForm.elements.length; i++) { document.write(document.elmeuForm.elements[i].name + "<BR>") } |
options |
Array corresponent a les opcions de la llista ordenades segons apareixen. |
lamevaLlista.options[1] = null |
selectedIndex |
Nombre que indica la posició de l'opció seleccionada. |
function ObtenirIndex() { return document.elmeuForm.llista.selectedIndex } |
type |
String que especifica el tipus de l'objecte. És de només lectura. |
-
Si en un objecte Select, no hi ha cap element seleccionat, el valor de la propietat selectedIndex és –1.
-
En el cas de poder seleccionar diversos elements de la llista, la propietat selectedIndex conté la posició del primer element de la llista que està seleccionat.
-
En el paràmetre type, s'especifica si en la llista es podran seleccionar diversos elements o solament un. Els valors per indicar-ho són: "select-multiple" i "select-one".
-
Igual que els objectes anteriors, la propietat value no es visualitza en el document, és el valor que s'envia amb la resta de dades del formulari.
<select name="elements"> <option value="O">Oxigen <option value="N">Nitrogen <option value="Na">Sodi <option value="Ag">Plata <option value="H">Hidrogen <option value="K">Potassi </select>

4.4.8.L'objecte Option
-
Mitjançant la etiqueta <option> d'HTML
-
Mitjançant el constructor: new option (text, value, defaultSelected, selected), els paràmetres del qual són opcionals i tenen el següent significat:
-
text: especifica el text que es veurà en la llista.
-
value: especifica el valor que s'enviarà amb les dades del formulari si l'opció està seleccionada.
-
defaultSelected: Especifica el valor inicial de l'opció, true si és seleccionat i false en cas contrari.
-
selected: especifica l'estat actual de l'opció, és a dir, si està seleccionada o no.
-
Nom |
Descripció |
Exemple |
---|---|---|
defaultSelected |
Valor booleà que indica si l'opció està seleccionada o no per defecte. El valor true indica que sí, i el valor false que no. |
function restauraLlista() { for (var i = 0; i < document.elmeuForm. lista.length; i++) { if ( document.elmeuForm.llista. options[i].defaultSelected == true ) document.elmeuForm.lista .options[i].selected = true else document.elmeuForm.llista. options[i].selected = false } } |
selected |
Valor booleà que indica si l'opció està seleccionada. El valor true indica que sí, i el valor false que no. |
function restauraLlista() { for (var i = 0; i < document.elmeuForm. llista.length; i++) { if ( document.elmeuForm.llista. options[i].defaultSelected == true ) document.elmeuForm.llista.options[i] .selected = true else document.elmeuForm.llista. options[i].selected= false } } |
text |
Text que es mostra en la llista. |
|
value |
Especifica el valor que s'enviarà amb les dades del formulari si l'opció està seleccionada. |
5.Gestió d'esdeveniments
5.1.Model bàsic de control d'esdeveniments
Controlador d'esdeveniment |
Descripció |
Objectes que l’admeten |
---|---|---|
onabort |
Es produeix quan l'usuari interromp la càrrega de la imatge. |
<img> |
onblur |
Es produeix quan un element perd el focus. |
Tots els elements HTML excepte <base>, <bdo>, <br>, <head>, <html>, <iframe>, <meta>, <param>, <script>, <style> i <title> |
onchange |
Es produeix quan un camp de formulari ha perdut el focus i el seu valor ha canviat. |
<input>, <keygen>, <select> i <textarea> |
onclick |
Es produeix quan es prem sobre un objecte. |
Tots els elements visibles |
ondblclick |
Es produeix quan es fa una doble pulsació sobre l'objecte. |
Tots els elements visibles |
onfocus |
Es produeix quan un objecte rep el focus. |
Tots els elements HTML excepte <base>, <bdo>, <br>, <head>, <html>, <iframe>, <meta>, <param>, <script>, <style> i <title> |
onkeydown |
Es produeix quan es prem una tecla. |
Tots els elements visibles |
onkeypress |
Es produeix quan es manté premuda una tecla. |
Tots els elements visibles |
onkeyup |
Es produeix quan s'allibera una tecla premuda. |
Tots els elements visibles |
onload |
Es produeix quan el navegador acaba de carregar una finestra o un conjunt de marcs. |
<body>, <frame>, <iframe>, <img>, <input type="image">, <link>, <script> i <style> |
onmousedown |
Es produeix quan es prem un botó del ratolí. |
Tots els elements visibles |
onmousemove |
Es produeix quan es mou el ratolí mentre s'està sobre l'objecte. |
Tots els elements visibles |
onmouseout |
Es produeix quan el punter abandona l'àrea d'un objecte. |
Tots els elements visibles |
onmouseover |
Es produeix quan el punter entra en una àrea d'un objecte. |
Tots els elements visibles |
onmouseup |
Es produeix quan s'allibera un botó premut del ratolí. |
Tots els elements visibles |
onreset |
Es produeix quan es netegen els camps d'un formulari. |
<form> |
onselect |
Es produeix quan se selecciona el contingut d'un camp de text o d'una àrea de text en un formulari. |
<input>, <textarea> i <keygen> |
onsubmit |
Es produeix quan s'envia un formulari. |
<form> |
onunload |
Es produeix quan s'abandona la pàgina. |
<body>, <frameset> |
5.1.1.Vinculació en etiquetes HTML
<etiqueta controlador_d_esdeveniment="Codi JavaScript">
<a href="https://www.uoc.es" onmouseover="lamevaFuncio()">
<html> <head> <script type="text/javascript"> function lamevaFuncio() { alert("Enllaç a la pàgina inicial de la UOC"); } </script> </head> <body> <a href="https://www.uoc.es" onmouseover="lamevaFuncio()">Poseu el punter sobre aquest enllaç.</a> </body> </html>
5.1.2.Vinculació mitjançant objectes en JavaScript
objecte.controlador_d_esdeveniment = funció_controladora;
<html> <head> <script type="text/javascript"> function direccio() { alert("La URL d'aquesta pàgina és: " + document.URL ); } </script> </head> <body onload="direccio()"> </body> </html>
<html> <head> <script type="text/javascript"> function direccio() { alert("La URL d'aquesta pàgina és: " + document.URL); } window.onload = direccion; //nom del controlador en minúscules </script> </head> <body> </body> </html>
5.1.3.Valors de tornada
-
Un formulari en el qual s'ha definit un controlador per a l'esdeveniment submit, de manera que aquest controlador valida els valors introduïts en el camp i retorna true o false, depenent de si aquests són correctes. En cas que es retorni true, l'enviament del formulari es fa, i si es retorna false, es cancel·la.
-
Un altre exemple seria l'esdeveniment clic sobre un enllaç, de manera que si es retorna false, la càrrega de la pàgina es cancel·la.
<a href="https://www.uoc.edu" onclick="return confirm('Vols anar al Campus? ') ">Campus UOC</a>
Esdeveniment |
Retorn |
Descripció |
---|---|---|
Click |
false |
Botó d'opció i casella de verificació: no s'estableix. Botó d'enviament: l'enviament del formulari es cancel·la. Botó de restablir: el formulari no es restableix. Enllaç: l'enllaç no es carrega. |
Keydown |
false |
Cancel·la els esdeveniments keypress que continuen mentre l'usuari manté premuda la tecla. |
Keypress |
false |
Cancel·la l'esdeveniment keypress. |
Mousedown |
false |
Cancel·la l'acció predeterminada. |
Submit |
false |
Cancel·la l'enviament del formulari. |
5.2.Model HTML dinàmic de control d'esdeveniments
5.2.1.Introducció al model d'esdeveniments d'Internet Explorer 4.x i Netscape 4.x
<a href="https://www.uoc.edu">Campus UOC</a> <script type="text/javascript"> function controla(e){ alert("Has fet clic a: X="+ e.screenX +" Y="+ e.screenY); } document.links[0].onclick=controla; </script>
<a href="https://www.uoc.edu">Campus UOC</a> <script type="text/javascript"> function controla(){ alert("Has fet clic a: X="+ event.screenX +" Y="+ event.screenY); } document.links[0].onclick= controla; </script>
<a href="https://www.uoc.edu">Campus UOC</a> <script type="text/javascript"> function controla(e){ e=(e) ? e : event; alert("Has fet clic a: X="+ e.screenX +" Y="+ e.screenY); } document.links[0].onclick=controla; </script>
5.3.Model d'esdeveniments del DOM estàndard
Propietat |
Descripció |
---|---|
altKey |
Conté un valor booleà que indica si s'ha premut la tecla ALT. |
ctrlKey |
Conté un valor booleà que indica si s'ha premut la tecla CTRL. |
shiftKey |
Conté un valor booleà que indica si s'ha premut la tecla SHIFT. |
metaKey |
Conté un valor booleà que indica si s'ha premut la tecla Meta. |
bubbles |
Conté un valor booleà que indica si l'esdeveniment ascendeix per la jerarquia. |
button |
Indica el botó del ratolí que s'ha pressionat. |
cancelable |
Conté un valor lògic que indica si l'esdeveniment no hauria d'ascendir per la jerarquia. |
clientX |
Conté la coordenada X en què ha ocorregut l'esdeveniment. |
clientY |
Conté la coordenada Y en què ha ocorregut l'esdeveniment. |
screenX |
Conté la coordenada X en què ha ocorregut l'esdeveniment respecte a la pantalla completa. |
screenY |
Conté la coordenada Y en què ha ocorregut l'esdeveniment respecte a la pantalla completa. |
target |
Conté una referència al node en el qual s'ha produït l'esdeveniment. |
currentTarget |
Conté una referència al node al qual s'ha assignat el controlador. |
relatedTarget |
Conté una referència al node del qual ha sortit l'esdeveniment. |
type |
Conté una cadena que conté el tipus d'esdeveniment. |
eventPhase |
Indica la fase del recorregut en què s'ha capturat l'esdeveniment: 1 captura, 2 en la destinació i 3 en l'ascens. |
5.3.1.Esdeveniments de l'estàndard DOM
Tipus esdeveniment |
Esdeveniment |
Ascendeix? |
Cancel·lable? |
---|---|---|---|
Ratolí |
click |
Sí |
Sí |
mousedown |
Sí |
Sí |
|
mouseup |
Sí |
Sí |
|
mouseover |
Sí |
Sí |
|
mousemove |
Sí |
No |
|
mouseout |
Sí |
Sí |
|
Navegador i HTML |
load |
No |
No |
unload |
No |
No |
|
abort |
Sí |
No |
|
error |
Sí |
No |
|
select |
Sí |
No |
|
change |
Sí |
No |
|
submit |
Sí |
Sí |
|
reset |
Sí |
No |
|
focus |
No |
No |
|
blur |
No |
No |
|
resize |
Sí |
No |
|
scroll |
Sí |
No |
|
D'interfície d'usuari |
DOMFocusIn |
||
DOMFocusOut |
|||
DOMActivate |
|||
De canvi jerarquia |
DOMSubtreeModified |
Sí |
No |
DOMNodeInserted |
Sí |
No |
|
DOMNodeRemoved |
Sí |
No |
|
DOMNodeRemovedFromDocument |
No |
No |
|
DOMNodeInsertedIntoDocument |
No |
No |
|
DOMAttrModified |
Sí |
No |
|
DOMCharacterDataModified |
Sí |
No |
<a href="https://www.uoc.edu" id="uoc">Campus UOC</a> <script type="text/javascript"> function controla;(e){ alert("Has fet clic a: X="+ e.screenX +" Y="+ e.screenY); } document.getElementById("uoc").onclick=controla;; </script>
-
La funció controladora rep en el seu paràmetre a l'objecte Event, que podrà consultar-se a l'interior de la funció.
-
L'assignació de l'esdeveniment a l'objecte enllaç es fa utilitzant les propietats estàndard del DOM.
-
Permet especificar si l'esdeveniment es manejarà durant la fase de captura o durant la fase d'ascens, mentre que en el mètode presentat anteriorment, l'esdeveniment es captura quan l'objecte és la destinació i durant la fase d'ascens, en cas que n’hi hagi per a l'esdeveniment.
-
Permet vincular diversos controladors per a un mateix esdeveniment i un mateix objecte.
-
Permet vincular un controlador a un node del tipus text.
node.addEventListener(tipus,controlador,sentit);
-
Tipus: és una cadena que indica l'esdeveniment que s’escoltarà.
-
Controlador: és la funció que manejarà l'esdeveniment.
-
Sentit: és un valor booleà que indica si es captura en la fase de captura o en la fase d'ascens.
-
preventDefault(): que cancel·la el comportament estàndard d'un esdeveniment.
-
stopPropagation(): que atura el flux de l'esdeveniment per mitjà de la jerarquia.
<a href="https://www.uoc.edu" id="uoc">Campus UOC</a> <script type="text/javascript"> function NoAltClick(e){ if (e.altKey){ e.preventDefault(); e.stopPropagation(); } } function MostraClick(){ alert("S'ha fet click"); } document.addEventListener("click",NoAltClick,true); document.getElementById("uoc").addEventListener("click",MostraClick,true); </script>
Activitats
-
Els controls que ha de validar el formulari són: el DNI és obligatori i numèric i la selecció de la lletra ha de ser correcta. En cas d'error, s'han de visualitzar els missatges següents segons el cas: "Completa el camp DNI", "Escriu un DNI (sense lletres, només nombres)" i "La lletra del NIF es incorrecta."
-
L'algoritme per a calcular la lletra del NIF és el resultat de calcular la resta de dividir el nombre del DNI per 23 i la lletra del NIF correspon al caràcter obtingut de la cadena "TRWAGMYFP-DXBNJZSQVHLCKE" en funció del valor de la resta.
-
Ha de controlar que l'adreça de correu existeix i que les dades introduïdes corresponen a una adreça de correu electrònic correcta.