Além de formatar e deixar com um bom layout, agora queremos dar vida aos documentos. Ações, efeitos, eventos, tudo que o JavaScript pode fazer por uma página HTML.
Vamos ver como manipular eventos e como criar um novo conteúdo apenas com o javascript.
O arquivo JS é um arquivo de texto com extensão .js. Neste arquivo são declarados:
O arquivo JS é basicamente uma sequência de comandos JS. Cada comando é executado pelo navegador na sequência. O código JavaScript pode ser inserido em uma página utilizando a tag script de duas maneiras, com o código diretamente dentro dela (não recomendado) ou usando um arquivo externo (recomendado, ex: <script type="text/javascript" src="nome_arquivo.js"></script>
).
Qualquer código JS (dentro da página ou um arquivo externo) deve ficar entre os marcadores <script>
e </script>
. Um marcador HTML que DEVE ter a abertura e o fechamento (mesmo se for uma referência a um arquivo externo). Normalmente <script></script>
é inserido no cabeçalho da página (<head>
), mas também pode ser colocado no corpo (<body>
).
Os atributos da tag script são:
Uma página pode declarar quantos marcadores de script quiser. A leitura de uma página pelo browser é de cima para baixo. Isto inclui também a leitura do JS, como acontece com o CSS. Ou seja, tudo que for colocado em <script>
ou que estiver dentro de um arquivo .js será lido. Quando utilizamos um arquivo JS, o navegador faz uma requisição ao servidor (GET) para retornar o recurso.
A cada chamada a uma página HTML o navegador também faz requisições para retornar os JS do servidor. Portanto, os arquivos ou códigos JS são incluídos como um anexo à sua página HTML. Assim como HTML e CSS, JS é um código executado no lado cliente.
As variáveis em JS são “containers” para armazenar informação. Funcionam como a maioria das linguagens de programação.
Para declarar uma variável, devemos começar com a palavra chave var:
var x;
Quando criada, uma variável recebe valor undefined. Para atribuir um valor a variável, basta utilizar o operador de atribuição (var x = 10
). Strings em JS podem ser atribuídas com aspas simples ou aspas duplas (mas usem aspas duplas!). É possível concatenar strings, números e variáveis em JS, utilizando o operador de soma (+).
Os operadores do Javascript são similares aos encontrados em linguagens como C e Java:
Operadores lógicos: **&&, | , !** |
JS também suporta o uso de arrays. Para criar uma variável do tipo vetor (array), utilizamos o construtor de objetos Array:
var alunos = new Array();
Ou a maneira mais moderna, utilizando dois colchetes vazios:
var alunos = [];
Depois, basta inserir os valores nas posições do array.
alunos[0] = "Aluno1";
alunos[1] = "Aluno2";
Para criar já preenchido esses vetores, podemos fazer:
var alunos = new Array("Aluno1", "Aluno2");
var alunos = ["Aluno1", "Aluno2"];
Repare que não é preciso declarar o tamanho do vetor. Os vetores podem abrigar quaisquer tipos de dados e não precisam ter todas as entradas do mesmo tipo.
JS permite o uso de funções, para deixar o código mais organizado. É um bloco de código executado quando é chamado, como acontece na maioria das linguagens de programação. Por exemplo, executar uma função quando clicar em um botão.
A sintaxe básica começa com a palavra chave function, seguido pelo nome da função, a lista de parâmetros dentro de parênteses e um par de chaves delimitando o conteúdo da função:
function funcao() {
alert("Olá mundo!");
}
Funções em JS podem receber argumentos, separados por vírgula:
function funcao(arg1, arg2) {
alert(arg1);
alert(arg2);
}
Funções em JS não declaram tipo de retorno. Entretanto, podem retornar algum valor para quem chamou. Utiliza-se a palavra chave return.
Para executar a função, basta usar o nome e os parênteses: funcao();
As variáveis em JS tem dois escopos:
Funções são objetos no JavaScript e podem ser guardadas em variáveis.
JS também define estruturas de controle (if…else if…else). O uso é muito parecido à maioria das linguagens de programação:
if (condition1) {
//codigo
} else if (condition2) {
//codigo
} else {
//codigo
}
JS também define estruturas de repetição, muito parecido com outras linguagens de programação como C e Java:
for (var i = 0; i < 10; i++) {
alert(i);
}
while (i < 5) {
alert(i)
}
Quando uma página é carregada o navegador cria um modelo de objetos que representa a página (DOM). O DOM é construído como uma árvore de objetos. Lembre-se que o HTML é basicamente um conjunto de marcadores aninhados. Um marcador pode ter marcadores, que pode ter marcadores.
Porque estudar o DOM? JS consegue recuperar a estrutura da página em um objeto, ou seja, temos toda a estrutura da página em objetos dentro do JS. Assim, podemos manipular nossas páginas utilizando JS:
Uma das grandes funcionalidades de JS é manipular a página HTML, para deixar as páginas mais dinâmicas. A primeira coisa que precisamos fazer é encontrar um elemento do HTML Para isso, JS oferece um método chamado document.getElementById()
. O document.getElementById()
permite referenciar dinamicamente qualquer elemento do documento HTML através de um ID.
Existem outras formas de recuperar elementos HTML, não só pelo ID.
var parag = document.getElementsByTagName("p");
Repare que o argumento não é o valor do atributo name, mas sim o nome do marcador (p, div, span, h1, table). Portanto, forma este método retorna TODOS os elementos com o nome do argumento. No exemplo, retorna todos os parágrafos da sua página, cada elemento sendo acessado na forma de um array: parag[0]; parag[1];
var classes = document.getElementsByClassName("classe");
Este método retorna TODOS os elementos com a classe enviada no argumento. No exemplo, retorna todos elemento que tem o atributo class=“classe”
. Cada elemento é acessado na forma de um array: classes[0]; classes[1];
. O array retornado possui o atributo length para informar quantos elementos foram encontrados.
var objetos = document.querySelectorAll("p.importantes");
Este método retorna TODOS os elementos que batam com o seletor escrito. Cada elemento é acessado na forma de um array: objetos[0]; objetos[1];
. O array retornado possui o atributo length para informar quantos elementos foram encontrados. Se quiser retornar apenas o primeiro que bate com esse seletor, use a função:
var objeto = document.querySelector("p.importantes");
A manipulação de objetos HTML do JavaScript pode:
document.write("<p>Parágrafo</p>");
document.getElementById("id").innerHTML="texto";
document.getElementById("id").src="imagem.jpg";
Modificar estilos CSS:
document.getElementById("id").style.background="#F0D";
document.getElementById("id").style.margin="10px";
document.getElementById("id").style.marginTop="10px";
Eventos são ações que podem ser detectadas pelo JS. Todo elemento HTML possui eventos que podem ser disparados por funções JavaScript. Exemplos de eventos aplicados nos elementos:
Esta forma de inserir o JS em um HTML constitui uma terceira abordagem de integração entre as linguagens. A diferença aqui é que só há disparo quando o evento acontece.
Para deixar a integração com separação de código, usa-se o recurso de função. Uma function agrupa comandos que são disparados quando o evento acontece. Também é possível enviar o elemento que recebe o evento como parâmetro da função.
Também é possível definir os eventos direto no JS, e não nos marcadores.
Também é possível inserir elementos no HTML utilizando os métodos:
var x = document.createElement("p");
document.getElementByID("id").appendChild(x);
var t = document.createTextNode("Texto");
Atente para os tópicos a seguir. Eles devem ser estudados com muita atenção, pois representam os pontos mais importantes do capítulo.
Da mesma forma que o CSS, recomenda-se que os arquivos JS estejam separados do HTML.
O JS é utilizado, sobretudo, para a manipulação do HTML.