36
O Modelo de Objectos do Documento (DOM). Acesso e manipulação dos objectos do DOM. Conferencia 8 MSc. Yoenis Pantoja Zaldívar Programação Web

O Modelo de Objectos do Documento (DOM). Acesso e ... · Método para obter o valor de um atributo através de seu nome. no.setAttribute(nomeAtributo, valor) Método para estabelecer

  • Upload
    others

  • View
    8

  • Download
    0

Embed Size (px)

Citation preview

Page 1: O Modelo de Objectos do Documento (DOM). Acesso e ... · Método para obter o valor de um atributo através de seu nome. no.setAttribute(nomeAtributo, valor) Método para estabelecer

O Modelo de Objectos do

Documento (DOM). Acesso e

manipulação dos objectos do

DOM.

Conferencia 8

MSc. Yoenis Pantoja Zaldívar

Programação Web

Page 2: O Modelo de Objectos do Documento (DOM). Acesso e ... · Método para obter o valor de um atributo através de seu nome. no.setAttribute(nomeAtributo, valor) Método para estabelecer
Page 3: O Modelo de Objectos do Documento (DOM). Acesso e ... · Método para obter o valor de um atributo através de seu nome. no.setAttribute(nomeAtributo, valor) Método para estabelecer
Page 4: O Modelo de Objectos do Documento (DOM). Acesso e ... · Método para obter o valor de um atributo através de seu nome. no.setAttribute(nomeAtributo, valor) Método para estabelecer

Aspeitos gerales do DOM.

Métodos e propriedades para o acesso e

manipulação dos objectos do DOM.

O Modelo de Objectos do Navegador

(Browser Object Model, BOM)

Resumo

Page 5: O Modelo de Objectos do Documento (DOM). Acesso e ... · Método para obter o valor de um atributo através de seu nome. no.setAttribute(nomeAtributo, valor) Método para estabelecer

Caracterizar o DOM, mediante seus

principais métodos e propriedades para

manipular os conteúdos de documentos

HTML.

Identificar os principais objectos do

navegador, útiles para a programação de

aplicativos Web.

Objectivos

Page 6: O Modelo de Objectos do Documento (DOM). Acesso e ... · Método para obter o valor de um atributo através de seu nome. no.setAttribute(nomeAtributo, valor) Método para estabelecer

Eguíluz Pérez Javier, Introducción a

JavaScript. Capítulo 5. Disponible em:

http://progwebisutic.wordpress.com

Eguíluz Pérez Javier, Introducción a

AJAX. Capítulos 4 e 5. Disponible em:

http://progwebisutic.wordpress.com

W3C, Document Object Model (DOM).

Disponible en: <http://www.w3.org/DOM/>

Bibliografía

Page 7: O Modelo de Objectos do Documento (DOM). Acesso e ... · Método para obter o valor de um atributo através de seu nome. no.setAttribute(nomeAtributo, valor) Método para estabelecer

“(…) é uma API para acceder, inserir e

mudar dinámicamente conteúdo

estruturado em documentos com Javascript”

Document Object Model (DOM)

Wikipedia, Document Object Model. Disponible en:

http://es.wikipedia.org/wiki/Document_Object_Model

Page 8: O Modelo de Objectos do Documento (DOM). Acesso e ... · Método para obter o valor de um atributo através de seu nome. no.setAttribute(nomeAtributo, valor) Método para estabelecer

“(…) plataforma que proporciona um

conjunto estándar de objetos através da qual

podem-se criar documentos HTML e XML,

navegar por sua estrutura e, modificar,

inserir e apagar tanto elementos como

conteúdos (…)”

Document Object Model (DOM)

W3C, El W3C de la A a la Z. Disponible en:

http://www.w3c.es/divulgacion/a-z/

Page 9: O Modelo de Objectos do Documento (DOM). Acesso e ... · Método para obter o valor de um atributo através de seu nome. no.setAttribute(nomeAtributo, valor) Método para estabelecer

Na programação de aplicativos Web

podemos:

– Obter o valor armazenado por alguns

elementos.

– Criar elementos de forma dinámica e

inserirlos ao documento. Eliminar existentes.

– Manipulação interactiva de conteúdos

(ocultar/mostrar, desplazar, etc.)

Importância del DOM

Page 10: O Modelo de Objectos do Documento (DOM). Acesso e ... · Método para obter o valor de um atributo através de seu nome. no.setAttribute(nomeAtributo, valor) Método para estabelecer

Uma página (X)HTML não é mais que

uma sucesão de caracteres (formato difícil

de manipular).

DOM transforma os documentos (X)HTML

num conjunto de nodos interconectados

que representan os conteúdos e as

relações entre eles (conhecido como

árvore de nós).

Importancia del DOM

Page 11: O Modelo de Objectos do Documento (DOM). Acesso e ... · Método para obter o valor de um atributo através de seu nome. no.setAttribute(nomeAtributo, valor) Método para estabelecer

1. A raíz sempre é a mesma: um nó de tipo

especial denominado “document”.

2. A partir do nó raíz cada etiqueta HTML

transforma-se num nó de tipo “Element”

que deriva do nó correspondente á sua

“etiqueta pai”.

Regras para a transformação

Page 12: O Modelo de Objectos do Documento (DOM). Acesso e ... · Método para obter o valor de um atributo através de seu nome. no.setAttribute(nomeAtributo, valor) Método para estabelecer

3. As etiquetas HTML habituais generan 2

nós:

– Propria etiqueta (de tipo “Elemento”)

– Texto conteúdo (de tipo “Texto”)

4. Se uma etiqueta é filha de outra sigue-se

o procedimiento anterior, siendo filhos de

seu nó pai.

Regras para a transformação

Page 13: O Modelo de Objectos do Documento (DOM). Acesso e ... · Método para obter o valor de um atributo através de seu nome. no.setAttribute(nomeAtributo, valor) Método para estabelecer

Principais tipos de nós

Document Element

Nó raíz

Attr Text

Cada etiqueta HTML, único nó

que contém atributos.

Cada atributo de uma etiqueta

HTML.

Cada texto conteúdo numa

etiqueta HTML.

Page 14: O Modelo de Objectos do Documento (DOM). Acesso e ... · Método para obter o valor de um atributo através de seu nome. no.setAttribute(nomeAtributo, valor) Método para estabelecer

Que nós generam-se a partir de cada umo

dos códigos seguintes?

Exercicio 1

<title>Minha pagina</title>

<p class=“conselho”>Protege tua vida</p>

<p class=“conselho”><em>Protege</em> tua vida</p>

Page 15: O Modelo de Objectos do Documento (DOM). Acesso e ... · Método para obter o valor de um atributo através de seu nome. no.setAttribute(nomeAtributo, valor) Método para estabelecer

Construia o árvore de nós.

Exercicio 2

<html>

<head>

<title>O combatente</title>

</head>

<body>

<h1 class=“c1”>Sempre presente</h1>

<p>Seu exemplo <strong>vive</strong></p>

<body>

<html>

Page 16: O Modelo de Objectos do Documento (DOM). Acesso e ... · Método para obter o valor de um atributo através de seu nome. no.setAttribute(nomeAtributo, valor) Método para estabelecer

Acesso á os nós

O acesso á os nós, sua modificação e

sua eliminação só é posível quando o

árvore DOM foi construido previamente

de forma completa.

Acesso pelos nós

pais

Acesso directo

(uso de funções)

Page 17: O Modelo de Objectos do Documento (DOM). Acesso e ... · Método para obter o valor de um atributo através de seu nome. no.setAttribute(nomeAtributo, valor) Método para estabelecer

Acesso pelos nós pais

document.forms[index].elements[index]

var meuFormulario = document.forms[0];

var meuElemento = meuFormulario.elements[0];

<form name="frm1">

<input type="text" name=“elem1" />

</form>

<form name=“frm2">

<input type="text" name=“elem2" />

</form>

Page 18: O Modelo de Objectos do Documento (DOM). Acesso e ... · Método para obter o valor de um atributo através de seu nome. no.setAttribute(nomeAtributo, valor) Método para estabelecer

var meuFormulario = document.frm2;

var meuElemento = meuFormulario.elem2;

<form name="frm1">

<input type="text" name=“elem1" />

</form>

<form name=“frm2">

<input type="text" name=“elem2" />

</form>

document.nomeformulario.nomeelemento

Acesso pelos nós pais

Page 19: O Modelo de Objectos do Documento (DOM). Acesso e ... · Método para obter o valor de um atributo através de seu nome. no.setAttribute(nomeAtributo, valor) Método para estabelecer

getElementsByTagName()

Acesso pelo nome da etiqueta. Devuelve um array com

os elementos .

getElementsByName()

Acesso mediante o atributo ‘name’ da etiqueta.

Devuelve um array com os elementos .

getElementById()

Acesso mediante o atributo ‘id’ da etiqueta.

Acesso directo - Métodos

Page 20: O Modelo de Objectos do Documento (DOM). Acesso e ... · Método para obter o valor de um atributo através de seu nome. no.setAttribute(nomeAtributo, valor) Método para estabelecer

<><>/*Acesso á todos os links do primeiro parágrafo do

documento*/

var pgfos = document.getElementsByTagName("p");

var primeiroPgfo = pgfos[0];

var links = primeiroPgfo.getElementsByTagName("a");

alert(“No primeiro parágrafo há ” + links.length + “ links.”)

Acesso directo - Exemplo

Page 21: O Modelo de Objectos do Documento (DOM). Acesso e ... · Método para obter o valor de um atributo através de seu nome. no.setAttribute(nomeAtributo, valor) Método para estabelecer

<><>/*Acceso por el nombre*/

var rbnCores = document.getElementsByName(“cor”);

Acesso directo - Exemplo

/*Código HTML*/

<input id=“r1” name=“color” type=“radio” value=“R” />

<label for=“r1”>Vermelho</label>

<input id=“r2” name=“color” type=“radio” value=“V” />

<label for=“r2”>Verde</label>

<input id=“r3” name=“color” type=“radio” value=“A” />

<label for=“r3”>Azul</label>

Page 22: O Modelo de Objectos do Documento (DOM). Acesso e ... · Método para obter o valor de um atributo através de seu nome. no.setAttribute(nomeAtributo, valor) Método para estabelecer

<><>/*Acesso á um elemento pelo id*/

var cIdade = document.getElementById (“idade”);

alert(cIdade.value);

Acesso directo - Exemplo

/*Código HTML*/

<input id=“nome” name=“nome” type=“text” />

<label for=“nome”>Nome</label>

<input id=“idade” name=“idade” type=“text” />

<label for=“idade”>Idade</label>

Page 23: O Modelo de Objectos do Documento (DOM). Acesso e ... · Método para obter o valor de um atributo através de seu nome. no.setAttribute(nomeAtributo, valor) Método para estabelecer

Criar nós - Pasos

1. Criar nó de tipo Element.

2. Criar nó de tipo Text (conteúdo do

elemento).

3. Adicionar o nó Text como filho do nó

Element.

4. Adicionar o nó Element como filho do nó

donde quere-se inserir.

Page 24: O Modelo de Objectos do Documento (DOM). Acesso e ... · Método para obter o valor de um atributo através de seu nome. no.setAttribute(nomeAtributo, valor) Método para estabelecer

document.createElement(“etiqueta”)

Método para criar nó de tipo Element .

document.createTextNode(“conteúdo”)

Método para criar nó de tipo Text.

nodoPadre.appendChild(nóFilho)

Método para adicionar o noFilho como filho de nóPai.

Criar nós – Métodos

Page 25: O Modelo de Objectos do Documento (DOM). Acesso e ... · Método para obter o valor de um atributo através de seu nome. no.setAttribute(nomeAtributo, valor) Método para estabelecer

<><>/* Criar e adicionar um parágrafo á página

com o texto “Angola 2016”*/

// Criar nó de tipo Element

var noP = document.createElement("p");

// Criar nó de tipo Text

var noTextoP = document.createTextNode(“Angola 2016");

// Adicionar o nó Text como filho do nó Element

noP.appendChild(noTextoP);

// Adicionar o nó Element como filho da página

document.body.appendChild(nodoP);

Criar nós - Exemplo

Page 26: O Modelo de Objectos do Documento (DOM). Acesso e ... · Método para obter o valor de um atributo através de seu nome. no.setAttribute(nomeAtributo, valor) Método para estabelecer

noPai.removeChild(noFilho)

Método para eliminar um nó Filho. Debe ser invocado

pelo nó Pai.

no.parentNode

Propriedad que permite aceder ao nó pai.

Eliminar nós – Métodos

Page 27: O Modelo de Objectos do Documento (DOM). Acesso e ... · Método para obter o valor de um atributo através de seu nome. no.setAttribute(nomeAtributo, valor) Método para estabelecer

<><>// Para eliminar o campo de texto…

// Aceder ao elemento pelo id

var txtAutor = document.getElementById(“txt_autor”);

// Acceder ao nó pai para invocar á removeChild()

txtAutor.parentNode.removeChild(txtAutor);

Eliminar nós - Exemplo

// Código XHTML<div>

<label>Autor:</label><input id=“txt_autor” name=“txt1” type=“text” />

</div>

Page 28: O Modelo de Objectos do Documento (DOM). Acesso e ... · Método para obter o valor de um atributo através de seu nome. no.setAttribute(nomeAtributo, valor) Método para estabelecer

no.getAttribute(nomeAtributo)

Método para obter o valor de um atributo através de

seu nome.

no.setAttribute(nomeAtributo, valor)

Método para estabelecer ou mudar o valor de um

atributo ao nó.

DOM – Outros métodos

Outra forma: no.nomeAtributo = valor (no

caso do atributo class há que usar

className)

Page 29: O Modelo de Objectos do Documento (DOM). Acesso e ... · Método para obter o valor de um atributo através de seu nome. no.setAttribute(nomeAtributo, valor) Método para estabelecer

<><>// Para asignar uma classe CSS…

// Aceder ao elemento pelo id

var titulo = document.getElementById(“titulo_principal”);

// Asignar a classe CSS

titulo.setAttribute (“class”, “no-mostrar”);

Modificar atributos - Exemplo

// Fragmento de código XHTML

<h1 id=“titulo_principal” class=“encabezado1”>

Festival de Artistas Aficionados</h1>

// Fragmento de código CSS

.no-mostrar { display: none; }

Page 30: O Modelo de Objectos do Documento (DOM). Acesso e ... · Método para obter o valor de um atributo através de seu nome. no.setAttribute(nomeAtributo, valor) Método para estabelecer

Permite criar, mover, redimensionar e

fechar janelas do navegador.

Obter informação sobre o propio

navegador.

Propriedades da página actual e da

ecrã do usuario.

Browser Object Model (BOM)

Page 31: O Modelo de Objectos do Documento (DOM). Acesso e ... · Método para obter o valor de um atributo através de seu nome. no.setAttribute(nomeAtributo, valor) Método para estabelecer

Principais objectos do BOM

window document forms

history

location

images

links

navigator location

Page 32: O Modelo de Objectos do Documento (DOM). Acesso e ... · Método para obter o valor de um atributo através de seu nome. no.setAttribute(nomeAtributo, valor) Método para estabelecer

Descripção Sintaxis

open Abrir janelas win = window.open( url, name, attrb);

close Fechar janelas win.close();

alert Abre uma janela Alert win.alert();

statusTexto na barra de

estadowin.status = “mensagem na barra”;

prompt Abre janela prompt win.prompt (dados, val_inicial);

print Imprime o documento win.print

window

Page 33: O Modelo de Objectos do Documento (DOM). Acesso e ... · Método para obter o valor de um atributo através de seu nome. no.setAttribute(nomeAtributo, valor) Método para estabelecer

Descripção Sintaxis

writeEscreve no

documentodocument.write(dado)

writelnEscreve e salta de

lenhadocument.writeln(dado)

alinkColorCor de link sem

usardocument.alinkColor = cor;

linkColor Cor de link activo document.linkColor = cor;

vlinkColor Cor de link visitado document.vlinkColor = cor

locationurl do documento

actualurl = document.location;

document

Page 34: O Modelo de Objectos do Documento (DOM). Acesso e ... · Método para obter o valor de um atributo através de seu nome. no.setAttribute(nomeAtributo, valor) Método para estabelecer

Descripção Sintaxis

backVuelve á página

anteriorwindow.history.back();

forward Página seguinte window.history.forward();

go(valor)

Segundo o valor

leva ás páginas

seguintes ou

anteriores.

window.history.go(valor);

history

Page 35: O Modelo de Objectos do Documento (DOM). Acesso e ... · Método para obter o valor de um atributo através de seu nome. no.setAttribute(nomeAtributo, valor) Método para estabelecer

Descripção Sintaxis

hrefLa URL completa

de la página actuallocation.href = “http://intranet.uci.cu”

location

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<script type="text/javascript">

setTimeout("location.href='http://www.google.com';“,5000);

</script>

</head>

<body></body></html>

Page 36: O Modelo de Objectos do Documento (DOM). Acesso e ... · Método para obter o valor de um atributo através de seu nome. no.setAttribute(nomeAtributo, valor) Método para estabelecer

O Modelo de Objectos do

Documento (DOM). Acesso e

manipulação dos objectos do

DOM.

Conferencia 8

MSc. Yoenis Pantoja Zaldívar

Programação Web