O Modelo de Objectos do Documento (DOM). Acesso e ... · Método para obter o valor de um atributo...

Preview:

Citation preview

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

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

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

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

“(…) é 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

“(…) 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/

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

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

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

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

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.

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>

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>

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)

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>

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

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

<><>/*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

<><>/*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>

<><>/*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>

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.

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

<><>/* 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

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

<><>// 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>

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)

<><>// 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; }

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)

Principais objectos do BOM

window document forms

history

location

images

links

navigator location

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

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

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

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>

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

Recommended