Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Sumrio
Introduo
Hoje cada vez mais crescente a demanda por profissionais nas reas de desenvolvimento de sites e web design. Por isso, cresce tambm a necessidade de conhecimento das linguagens que compem esta tecnologia. O uso do JavaScript como linguagem de apoio no desenvolvimento de sites nunca esteve to evidenciado como nos dias atuais. utilizando esta linguagem, que voc, caro leitor, conseguir adentrar no universo da interatividade e dinamismo que um site precisa ter. Este curso apresenta, de forma prtica e clara, as diversas tcnicas que faro com que, em pouco tempo, voc esteja capacitado a escrever scripts para as mais variadas
tarefas. O curso apresenta ainda um breve estudo sobre DHTML e totalmente compatvel com ECMA-262, HTML 4.0 e JavaScript 1.5.
Na parte <script language="javascript">, ns estamos dizendo ao browser que tipo de cdigo ele est prestes a executar. Voc ver futuramente que temos uma variedade de scripts que podem ser executados pelo browser, entre eles, JScript, VBScript, etc. Na parte <!-- ns estamos dizendo ao browser o seguinte: "Se voc for um dos browsers mais antigos ou no suporta JavaScript, faa o favor de pular algumas das linhas de cdigo que vem a seguir". A parte do cdigo: document.write('Este o meu primeiro JavaScript'); transmitiu ao browser a seguinte mensagem: "Acesse o documento (a pgina atual) e escreva (write) o texto que est entre aspas simples". Observe que usamos ponto-e-vrgula depois da instruo para separar as instrues, como veremos nas prximas partes do curso. Em seguida ns temos //--> que quer dizer "aqui est o final do cdigo a ser executado por este script". E finalmente temos a tag de fechamento </script> que quer dizer "J que o cdigo a ser executado acabou, eu vou fechar aqui para que o browser no faa nenhuma besteira". Simples, no? Vamos rever o cdigo completo? Aqui est: <html> <head> <title>Meu primeiro JavaScript</title> </head> <body> <script language="javascript"> <!-document.write('Este o meu primeiro JavaScript'); //--> </script> </body> </html> Agora, para praticar ainda mais o nosso primeiro JavaScript, experimente alterar a linha de
texto e ver o resultado. E para praticar JavaScript e HTML ao mesmo tempo, tente o cdigo:
<script language="javascript"> <!-document.write('<b>Este o meu primeiro JavaScript. Em negrito agora.</b>'); //--> </script> Cuidado com a quebra de linha. A instruo document.write('Texto aqui') deve estar em apenas uma linha. Experimente substituir as tags <b></b> por <i></i> para visualizar o resultado. Lembre-se que a tag <b> transforma o texto em negrito (bold) e a tag <i> faz o texto itlico (italics).
Captulo 7 O ponto-e-vrgula
Todas as instrues (no se preocupe; vamos falar sobre isso logo) em JavaScript devem terminar com um ponto-e-vrgula, que tambm serve para separar uma instruo da outra. Observe os seguintes trechos de cdigo:
Cdigo 1 <script language="javascript"> <!-window.alert('Observe o ponto-e-vrgula no final da instruo.'); //--> </script> Cdigo 2 <script language="javascript"> <!-var numUm = 20; var numDois = 30; window.alert(numUm + numDois); //--> </script>
Agora vamos entender o que est acontecendo. Primeiro criamos um formulrio com um boto e, ao clicar no boto, o seguinte evento aconteceu: onclick="window.alert('Estou estudando JavaScript agora.');" Ou seja, ao clicar no boto, a pgina exibir a mensagem que est contida entre parnteses. Observe que usamos aspas duplas (" ") para definir o evento que aconteceria ao
clicar no boto, e usamos aspas simples (' ') para definir a string a ser exibida na caixa de mensagem. Se voc estiver achando isso meio complicado, no se preocupe. Durante o curso revisaremos estes conceitos.
Aqui a sua mensagem aparecer em duas linhas, j que usamos a barra invertida juntamente com a letra "n". Sempre que voc usar isso em seu cdigo ( \n) ter uma quebra de linha automaticamente. O "\n" representa um retorno e uma insero de linha (line feed). Isso o que acontece quando voc usa o retorno de uma mquina de escrever. Temos muitas outras combinaes da barra invertida com outras letras. Vamos ver algumas mais usadas.
Descrio backspace form feed inserir quebra de linha retorno (sem insero de linha) tabulao aspas simples (apstrofo) aspas duplas
A melhor maneira de ver o funcionamento destes smbolos experimentando. Vamos ver alguns exemplos usando os dois ltimos, j que so os mais importantes. Vamos ao seguinte caso: Queremos mostrar uma mensagem que exiba o seguinte texto: She said, "I don't like you". Podemos criar o seguinte cdigo: <script language="javascript"> <!-window.alert('She said: "I don't like you"'); //--> </script> Tente executar este cdigo e voc perceber uma imagem de erro. Vamos ver porque isso acontece. Sabemos que o interpretador trata as nossas linhas de texto de acordo com o uso das aspas simples e duplas. Como temos a linha de texto anteriormente colocada corretamente dentro das aspas, mas temos ainda as aspas e o apstrofo na palavra "don't". O que fazer? Experimente a nova verso do cdigo: <script language="javascript"> <!-window.alert('She said: \"I don\'t like you\"'); //--> </script> Este cdigo exibir a mensagem como queremos, j que ao usar a barra invertida antes das aspas ou apstrofos, conseguimos fazer com que o interpretador as coloque nas mensagens ou escreva na pgina exatamente do jeito que queremos. Pratique muito esta parte. Voc usar estes conceitos frequentemente em seus scripts.
Observe que aqui usamos os colchetes para definir os elementos da matriz pessoas, e ento usamos os parnteses para passar o argumento (um elemento da matriz) para o mtodo write do objeto document. No se preocupe com o cdigo em si. Tente apenas entender o uso dos colchetes nesta parte do curso. Para praticar um pouco mais este trecho de cdigo, experimente alterar o nmero entre o mtodo: document.write(pessoas[2]); para um dos outros valores da matriz (0, 1, 2 ou 3). Execute o cdigo vrias vezes para ir treinando. As chaves { } so usadas para conter mltiplas instrues. Com o uso de chaves possvel colocar vrias instrues dentro de uma nica funo ou fluxo de cdigo. Observe o cdigo: <script language="javascript"> <!-var meuNumero = 10; if(meuNumero == 10){ window.alert('O valor de meuNumero igual a 10'); document.write('meuNumero igual a 10'); } //--> </script> Observe que aqui usamos as chaves para colocar as duas instrues que seriam chamadas, caso a instruo condicional: if(meuNumero == 10) retornasse um valor positivo. Instrues condicionais sero vistas em outra parte do curso.
Captulo 12 Comentrios
Sempre que voc estiver escrevendo os seus cdigos JavaScript, uma boa ideia deixar alguns comentrios neles. Comentrios so teis para mostrar informaes sobre direitos autorais, assim como informaes sobre cada funo, caso precise revisar o seu cdigo mais tarde. Ao comentar o cdigo, tornar as coisas mais fceis tanto para voc como para quem for tentar entender o seu cdigo mais tarde.
<script language="javascript"> <!-// A linha abaixo escreve o texto na pgina document.write('Este cdigo est comentado'); //--> </script>
Para comentar o seu cdigo usando mltiplas linhas, voc pode usar a barra juntamente com um asterisco no incio e no fim do comentrio. Abra o comentrio usando /* e feche usando */. Observe o cdigo abaixo:
<script language="javascript"> <!-/* A linha abaixo escreve o texto na pgina e eu estou usando mais de uma linha no meu comentrio */ document.write('Este cdigo est comentado'); //--> </script>
Seguindo estas diretrizes, voc pode comentar os seus cdigos da maneira que achar mais vivel.
Os nomes das funes e das variveis devem serguir algumas regras simples, conforme mostrado em seguida: Regra 1: O primeiro caractere do nome da funo ou da varivel deve ser uma letra do alfabeto (maisculo ou minsculo), uma barra (chamada em ingls de underscore) que deve ser escrita (_) sem nenhum espao entre a barra e o prximo caractere ou um sinal de dlar $. O sinal de dlar no recomendado, j que algumas verses do JavaScript no o reconhecem (verses mais antigas). Veja os exemplos de nomes de variveis e funes exemplificando esta regra: var MeuResultado = 234; function Voltar() var meuResultado = 394; var _Resultado = 432; function Visualizar_Resultado() var $Canal = 'Outro'; Regra 2: Voc no pode usar um nmero para iniciar o nome de uma funo ou de varivel. Tenha bastante cuidado com esta regra. Seus scripts podem no funcionar perfeitamente. Regra 3: Nomes de variveis e de funes no podem conter espaos. No caso de realmente precisarde um espao (para identificar melhor uma funo ou nome de varivel),
voc pode usar a barra (_) como nos exemplos abaixo: var Meu_Numero = 21; function Fechar_Janela() Regra 4: Os nomes das funes e das variveis no podem ser iguais a nenhuma das palavras reservadas. Todas as linguagens de programao tm uma srie de palavras que so usadas internamente, e quando estamos programando, no podemos usar estas palavras, pois o compilador ou o interpretador recusar o nosso cdigo, j que o uso das palavras reservadas causar erros irremediveis no fluxo do cdigo. As palavras reservadas do JavaScript so listadas em seguida. Recomendamos que voc use sempre nomes bem sugestivos para as suas funes ou variveis. Dando nomes fceis de ser lembrados ou associados, far com que o seu trabalho seja bem mais produtivo e poupar muito tempo na hora de referenciar esses nomes no seu cdigo.
Palavras Reservadas em JavaScript abstract else boolean enum break export byte extends case false catch final char finally class float const for continue function debugger goto default if delete implements do import double in
instanceof int interface long native new null package private protected public return short static super
switch synchronized this throw throws transient true try typeof var void volatile while with
Alm das palavras listadas acima, recomendvel evitar escolher nomes semelhantes aos da tabela abaixo para suas variveis ou funes. Tais nomes so de objetos, mtodos ou propriedades dos navegadores Internet Explorer, Netscape, Firefox, etc. Evite usar as palavras abaixo alert event all fileUpload anchor focus anchors form area forms array frame assign frames blur frameRate button function link location Math mimeTypes name navigate navigator netscape Number parseFloat parseInt password pkcs11 plugin prompt prototype radio reset
checkbox clearTimeout clientInformation close closed confirm crypto date defaultStatus document element elements embed embeds escape eval
getClass hidden history image images isNaN java JavaArray JavaClass JavaObject JavaPackage innerHeight innerWidth layer layers length
Object offscreenBuffering onblur onerror onfocus onload onunload open opener option outerHeight outerWidth packages pageXOffset pageYOffset parent
screenX screenY scroll secure select self setTimeout status String submit sun taint text textarea top toString unescape untaint valueOf window
Variveis em JavaScript no so tipadas (typed). O que isso quer dizer? Em linguagens como Delphi ou Visual Basic, ns sempre temos que definir que tipo de varivel estamos usando. Quando estamos usando estas linguagens, temos que dizer ao compilador se a varivel armazenar um valor boolean (true ou false - verdadeiro ou falso), integer (inteiro), e assim por diante. Em JavaScript isso no acontece. Voc pode diferenciar uma varivel tipo texto (string) de uma varivel que armazenar outros valores, simplesmente colocando o valor dessa varivel entre aspas. Vamos ver um exemplo de uma varivel do tipo numrico: <script type="text/javascript"> <!-var resultado = 100; document.write('O valor da varivel resultado ' + resultado); //--> </script> Observe que agora no colocamos aspas ao redor do valor da varivel, portanto, o interpretador vai trat-la como uma varivel de tipo numrico.
pgina. Recomendo que voc pratique bastante esta alterao de variveis em tempo de execuo. medida que voc for praticando, voc ter muitas idias sobre como usar variveis para dar mais dinamismo aos seus scripts.
Este cdigo, se bem estudado, trar a voc uma das tcnicas mais importantes em JavaScript, que fazer clculos. Vamos tentar entender tudo o que foi usado aqui. Uma parte do nosso cdigo HTML puro. Criamos um formulrio com duas caixas de texto e um boto. Observe aqui que foram dados nomes tanto ao formulrio quanto s caixas de texto. A partir do momento que voc precisa referenciar os elementos da pgina via cdigo, deve dar nomes eles. A seguir criamos uma funao chamada calcular(), da qual fazermos a chamada por meio do boto Calcular. Foram criadas duas variveis que devero armazenar os valores digitados pelo usurio durante a execuo do cdigo. Aqui ns usamos a funo parseFloat. Por que fazer a coisa to complicada? Como o contedo da caixa de texto do tipo string (linha de texto), ns tivemos que transformar esse contedo em um valor numrico para que o clculo fosse possvel. Depois de armazenar os dois valores, tudo que temos a fazer efetuar um clculo matemtico usando o mtodo window.alert para exibir uma mensagem com a soma desses dois nmeros. Funes, clculos matemticos e o processo de acessar formulrios por meio de JavaScript sero explicados em outra parte do curso. Tente absorver no momento o uso das variveis e como voc pode implement-las para obter os melhores resultados de seus scripts.
Vamos rever o cdigo? Criamos uma varivel chamada nome. Observe que podemos criar uma varivel com valor nulo (null) inicialmente, e s passar um valor a ela no momento oportuno. No um bom procedimento, pois corremos o risco de tentar acessar uma varivel que no recebeu valores ainda. Caso isso acontea, o JavaScript retornar o valor dessa varivel como undefined. A seguir, definimos que a nossa varivel nome dever armazenar o valor digitado pelo visitante
por meio da caixa de mensagem prompt. Prompts sero discutidos em outra parte do curso. Depois que o visitante digita o nome, ns j temos um valor para a nossa varivel e podemos agora escrev-la na pgina, usando uma mensagem adicional. Novamente tente entender a funo da varivel. Os demais elementos sero explicados mais adiante. Ento, lembre-se! Variveis em JavaScript podem armazenar qualquer valor: strings, inteiros, valores true ou false (boolean) e assim por diante. Voc pode diferenciar as suas strings de outros valores das variveis, simplesmente fazendo uso das aspas simples ('valor') ou aspas duplas ("valor").
} //--> </script> <script type="text/javascript"> <!-// aqui pegamos o valor da varivel e o escrevemos na pgina declarar(); document.write(nome); //--> </script> Tentando executar esta segunda verso do cdigo resultar em um erro de script porque, como a varivel nome foi declarada dentro da funo declarar(), ela no existe na memria at que a funo seja chamada, e deixar de existir quando a funo sair de execuo. recomendvel que voc use sempre funes globais at que tenha um bom domnio de JavaScript. Funes sero explicadas nas prximas partes do curso.
Parte IV Operadores
Captulo 20 O que so operadores?
Operadores so os smbolos que usamos quando estamos trabalhando com valores. Todos sabemos que 2 + 2 = 4. Os sinais + e = so operadores, j que trabalham com os valores da nossa operao aritmtica. JavaScript tem muitos operadores e entre eles, os que voc usar durante todo o seu ciclo de programao nesta linguagem. Na parte 2 do curso, ao declarar nossas variveis, usamos muitas vezes a seguinte construo: var nome = 'Ricardo Smith'; O smbolo = um operador de atribuio. Operadores de atribuio so usados para passar um valor a uma varivel. Um outro muito usado o operador de adio +. Veja o exemplo. <script type="text/javascript"> <!-var numUm = 23; var numDois = 45; var resultado = numUm + numDois; window.alert(resultado); //--> </script> No cdigo anterior temos um bom exemplo do uso de operadores. Primeiro usamos o operador de atribuio = para passar valores s variveis numUm e numDois, e ento usamos o operador de adio + para somar os valores destas duas variveis e apresentar o resultado em uma mensagem usando o mtodo window.alert. Vamos ver mais alguns operadores. Observe abaixo o uso dos operadores para comparaes. O operador de igualdade == usado para comparar valores e ento executar a ao definida por voc durante a execuo do script. Vamos ao cdigo:
<script type="text/javascript"> <!-var numero = 120; if(numero == 120){ window.alert('A varivel numero igual a 120'); } //--> </script> Neste cdigo ns usamos o operador de igualdade dentro de uma expresso condicional if para testar se o valor da varivel numero era igual a 120. Como o valor era igual a 120, a mensagem foi exibida. Tente esta verso do cdigo: <script type="text/javascript"> <!-var numero = 120; if(numero == 100){ window.alert('A varivel numero igual a 100'); } //--> </script> Se voc executar este cdigo, ver que a mensagem no ser exibida, j que o nmero testado pelo operador de igualdade ser diferente do valor da varivel numero. Para ver um exemplo do operador > (maior que), vamos alterar o script. Veja esta nova verso: <script type="text/javascript"> <!-var numero = 120; if(numero > 100){ window.alert('A varivel numero maior que 100'); } //--> </script> Ao executar este script, voc ver que a mensagem ser exibida, j que o operador > testou
se o valor da varivel numero era maior que o nmero 100. Como o valor passou no teste, a mensagem foi exibida. Operadores de atribuio, igualdade, comparao e todos os operadores que trabalham com funes matemticas so muito importantes, por isso merecem uma ateno toda especial no decorrer de seus estudos. Expresses condicionais if sero vistas em outra parte do curso. Veja em seguida os principais operadores em JavaScript.
Vamos falar um pouco sobre estes operadores. O mdulo de um nmero o restante depois da primeira diviso. Como exposto no exemplo, se voc dividir 10 por 3, ter como resultado 3 e mdulo 1, j que 1 foi o valor restante desta diviso. O operador de incremento ++ muito usado nas instrues for, como veremos mais adiante. O significado bsico de um operador de incremento : todas as vezes que o cdigo passar por aqui, adicione 1 ao valor da varivel tal. Quando estivermos estudando a instruo for, voc ter uma idia mais ampla deste operador. O operador de nmero negativo usado para definir um valor negativo em uma varivel. Para entender melhor, vamos ver o seguinte trecho de cdigo: var numero = 203; var resultado = -304; Tenho certeza de que voc encontrar um bom uso para estes operadores aritmticos em seus cdigos. Tente experimentar com eles para ir adquirindo mais intimidade com clculos matemticos em JavaScript.
Para atribuir valor a uma varivel, voc pode usar o operador de atribuio "=" como estivemos fazendo em nossos exemplos anteriores. A tabela acima lista os principais operadores de atribuio. Vamos dar uma olhada em alguns. Vamos escrever um script usando o operador "+=". Observe o cdigo abaixo: <script type="text/javascript"> <!-var numUm = 100; var numDois = 200; numDois += numUm; document.write(numDois); //--> </script> Este script bem simples. Nas primeiras duas linhas do script, ns atribumos valores s variveis numUm e numDois, usando o operador de atribuio "=". Na terceira linha, ns usamos a construo numDois += numUm; que quer dizer "pegue o valor da varivel numDois, some ao valor da varivel numUm e atribua o resultado na varivel numDois". Este script poderia ser modificado, substituindo esta linha por numDois = numDois + numUm; Fcil, no?
Vamos usar o mesmo script, mas desta vez com o operador "*=" que quer dizer o seguinte: "pegue o valor da varivel numDois, multiplique pelo valor da varivel numUm e atribua o resultado na varivel numDois". Vamos ao cdigo: <script type="text/javascript"> <!-var numUm = 100; var numDois = 200; numDois *= numUm; document.write(numDois); //--> </script> Ao executar o cdigo, voc ver o valor 2000 ser escrito na pgina, j que a varivel numDois multiplicada pelo valor da varivel numUm resultado mesmo neste valor. Novamente aqui voc pode escrever o mesmo script, usando numDois = numDois * numUm; O smbolo "*" usado para as multiplicaes.
Operadores de comparao comparam dois valores e retornam um valor verdadeiro (true) ou falso (false). Este tipo de operador usado para fazer com que o seu script execute uma ao, dependendo do valor de uma operao. Vamos ver um exemplo do uso destes operadores. Veja o cdigo: <script type="text/javascript"> <!-function checar(){ var numero = parseInt(document.form1.text1.value); if(numero == 10) window.alert('Voc digitou o nmero 10.'); if(numero > 10) window.alert('Voc digitou um nmero maior que 10.'); if(numero < 10) window.alert('Voc digitou um nmero menor que 10.'); } //--> </script> <form name="form1"> Digite um nmero: <input type="text" name="text1"> <input type="button" value="Checar" onclick="checar()"> </form> Este script produzir um formulrio como o que est exibido na figura seguinte:
Neste script voc pode ver que praticamos alguns dos operadores mais importantes em JavaScript. Analise o cdigo cuidadosamente e j ter algumas rotinas para adicionar aos seus JavaScripts.
Operadores lgicos so usados para testar valores em seus scripts e executar partes do cdigo, dependendo do resultado do teste. Um bom uso destes operadores aquele que verifica se o usurio preencheu os campos de um formulrio com os valores vlidos. Vamos escrever um script usando um destes operadores: <script type="text/javascript"> <!-var digito1 = 20; var digito2 = 30; if((digito1 == 20) && (digito2 == 30)) window.alert('Os valores esto corretos.'); //--> </script> Neste cdigo a mensagem s ser exibida se os valores das variveis digito1 e digito2 passarem pelo teste com o operador "&&", usado para testar duas condies ao mesmo tempo.
Este script usa vrias instrues if para checar a ocupao digitada pelo usurio e exibe uma mensagem de acordo com cada uma. Mas nosso script tem um problema, que vamos ver em seguida.
Agora o nosso script est completo. Execute o script novamente e digite uma ocupao diferente. Voc ver uma mensagem solicitando que digite uma das ocupaes solicitadas. Quando estamos usando uma instruo if...else, o nosso script est tentando dizer o seguinte: "Se (condio passar no teste) ento (faa alguma coisa), caso contrrio (faa outra coisa)". Veja o trecho de cdigo abaixo: if(numero == 10){ cdigo a ser executado vai aqui } else{ cdigo a ser executado vai aqui }
} } //--> </script> <form name="form1"> Por favor, digite a sua ocupao (Digitador, Programador, Tcnico ou Instrutor)<br> <input type="text" name="text1"> <input type="button" value="OK!" onclick="checar()"> </form> Vamos l! Execute o cdigo e experimente escrever em minsculas ou maisculas e seja bem-vindo s instrues if e if...else. Os mtodos do objeto String podem ser vistos aqui.
} case 'instrutor' :{ window.alert('Tem ensinado muito ultimamente?'); break; } default:{ window.alert('Informe uma das opes acima.'); } } } //--> </script> <form name="form1"> Por favor, digite a sua ocupao (Digitador, Programador, Tcnico ou Instrutor)<br> <input type="text" name="text1"> <input type="button" value="OK!" onclick="checar()"> </form> Ok! Eu confesso que tambm acho o cdigo deste exemplo muito longo. Mas, a melhor maneira de ver esta instruo em funcionamento. Vamos agora entender o nosso script. Primeiro ns criamos um formulrio com uma caixa de texto e um boto. O que o usurio digitar na caixa de texto ser lido por ns por meio da varivel ocupacao. Veja como isso feito: var ocupacao = document.form1.text1.value; Voc aprender como acessar os diversos elementos de uma pgina HTML em outra parte do curso. Agora, ns montamos a nossa instruo switch, como mostrado em seguida: switch(ocupacao.toLowerCase()) Isso quer dizer que a nossa instruo checar os valores passados pela varivel que est entre parnteses. Observe que no nosso cdigo ns usamos o mtodo toLowerCase para transformar as palavras em minsculas, para evitar erros caso o usurio digite letras maisculas no lugar de minsculas e vice-versa. Como voc deve ter notado, tudo que ser executado dentro da instruo switch est entre as chaves { }. Voc deve se lembrar deste conceito: todo bloco de cdigo deve ser colocado entre as chaves. A checagem de cada valor feita por meio de cada parte case da instruo switch, como mostra o trecho abaixo:
case 'digitador' :{ window.alert('Como est a sua velocidade de digitao?'); break; } Esta parte checa se o valor digitado "digitador", e caso afirmativo, retorna a mensagem apropriada. Observe que depois de cada case, temos que usar a instruo break para parar a execuo do cdigo dentro de cada bloco. Voc ver mais usos da instruo break em outras partes do curso. No nosso cdigo, ns usamos quatro case para checar os quatro valores. Mas, e se o usurio digitasse um valor diferente? Para isso ns temos que fazer uso da ltima parte do cdigo: default:{ window.alert('Informe uma das opes acima.'); } Esta a parte do cdigo que ser executada caso nenhuma das condies anteriores satisfaa os testes que o cdigo est fazendo. importante notar que esta sempre ser a ltima parte do cdigo. V em frente! Execute todas as partes do cdigo e experimente alterar os valores do script. a melhor maneira de aprender.
Aqui est o cdigo: <html> <head> <title>Estados e Capitais</title> </head> <body> <form name="form1"> Por favor escolha um estado:<br> <select name="estados" onchange="ver_estado()"> <option value="-1">Selecione um estado</option> <option value="Gois">Gois</option>
<option value="Mato Grosso">Mato Grosso</option> <option value="Paran">Paran</option> <option value="So Paulo">So Paulo</option> <option value="Rio de Janeiro">Rio de Janeiro</option> <option value="Tocantins">Tocantins</option> </select><br> Esta a capital deste estado:<br> <input type="text" name="capital"> </form> <script type="text/javascript"> <!-function ver_estado(){ var estado = document.form1.estados.value; switch(estado){ case 'Gois':{ document.form1.capital.value = 'Goinia'; break; } case 'Mato Grosso':{ document.form1.capital.value = 'Cuiab'; break; } case 'Paran':{ document.form1.capital.value = 'Curitiba'; break; } case 'So Paulo':{ document.form1.capital.value = 'So Paulo'; break; } case 'Rio de Janeiro':{ document.form1.capital.value = 'Rio de Janeiro'; break; } case 'Tocantins':{ document.form1.capital.value = 'Palmas'; break; } default:{ document.form1.capital.value = '';
} } } //--> </script> </body> </html> Execute o cdigo e veja o resultado voc mesmo. Aqui ns podemos ver perfeitamente como fcil transformar as nossas pginas web em verdadeiros programas. Tudo que voc tem a fazer estudar e estudar. Vamos ver alguns conceitos usados neste cdigo: Primeiro ns criamos um formulrio com uma caixa de combinao (combo) e uma caixa de texto. Quando o usurio seleciona um estado na caixa de combinao, ns usamos o evento onchange desse componente para chamar a funo e exibir na caixa de texto a capital correspondente. Eventos so muito importantes na programao em Javascript e sero vistos mais adiante. Se voc j tem um conhecimento bom de HTML, conseguir construir este programa sem ter que usar todo este cdigo. O motivo pelo qual eu resolvi aplicar este mtodo que este tipo de programa timo para exemplificar o uso da instruo switch.
} //--> </script> Agora ficou muito melhor, no? Vamos entender a nossa instruo agora. Primeiro ns criamos uma varivel chamada i (voc poderia ter dado qualquer nome). A seguir, comeamos a escrever a funo for, usando os seguintes elementos: for() (ao a ser executada) Aqui ns definimos o lao e abrimos os parnteses para escrevermos os parmetros da nossa instruo. Observe que a ao a ser executada no loop deve estar dentro das chaves { }. Vamos ver agora os parmetros a serem usados. i = 1; Aqui ns definimos o valor da varivel i. Voc deve sempre colocar o valor de 1 para esta varivel, j que o loop dever comear a partir do primeiro elemento. i <= 10; Esta a parte mais importante do loop, j que aqui ns definimos os parmetros principais da instruo. Esta parte do cdigo quer dizer: "Enquanto a varivel i for menor ou igual a 10, execute o trecho de cdigo a seguir". claro que voc pode alterar tanto o nome da varivel quanto o valor das vezes que o loop ser executado. i++ Neste trecho do cdigo ser acrescido um valor varivel, em em bom portugus quer dizer "todas as vezes que o lao passar aqui, faa o favor de acrescentar 1 a esta varivel". Como o smbolo "++" significa incremento, o valor da varivel ser aumentado at que satisfaa o valor definido na instruo. Quando ele for atingido, o loop no mais ser executado. Observe tambm o uso do elemento <br> na linha de texto para fazer a quebra de linha e assim escrever na linha seguinte. Vamos l! Modifique o cdigo e pratique bastante.
escrever o seguinte cdigo: <script type="text/javascript"> <!-var i; for(i = 1; i <= 10; i++){ document.write('Esta uma linha de texto<br>'); } //--> </script> Agora ficou muito melhor, no? Vamos entender a nossa instruo agora. Primeiro ns criamos uma varivel chamada i (voc poderia ter dado qualquer nome). A seguir, comeamos a escrever a funo for, usando os seguintes elementos: for() (ao a ser executada) Aqui ns definimos o lao e abrimos os parnteses para escrevermos os parmetros da nossa instruo. Observe que a ao a ser executada no loop deve estar dentro das chaves { }. Vamos ver agora os parmetros a serem usados. i = 1; Aqui ns definimos o valor da varivel i. Voc deve sempre colocar o valor de 1 para esta varivel, j que o loop dever comear a partir do primeiro elemento. i <= 10; Esta a parte mais importante do loop, j que aqui ns definimos os parmetros principais da instruo. Esta parte do cdigo quer dizer: "Enquanto a varivel i for menor ou igual a 10, execute o trecho de cdigo a seguir". claro que voc pode alterar tanto o nome da varivel quanto o valor das vezes que o loop ser executado. i++ Neste trecho do cdigo ser acrescido um valor varivel, em em bom portugus quer dizer "todas as vezes que o lao passar aqui, faa o favor de acrescentar 1 a esta varivel". Como o smbolo "++" significa incremento, o valor da varivel ser aumentado at que satisfaa o valor definido na instruo. Quando ele for atingido, o loop no mais ser executado. Observe tambm o uso do elemento <br> na linha de texto para fazer a quebra de linha e assim escrever na linha seguinte. Vamos l! Modifique o cdigo e pratique bastante.
<!-var i; for(i = 1; i <= 10; i++){ document.write('Esta uma linha de texto nmero ' + i + '<br>'); } //--> </script> Execute o cdigo agora e voc ficar surpreso com o resultado. Nas prximas partes do curso vamos usar a instruo for em conjunto com outras instrues na criao de alguns scripts mais avanados. Prepare-se!
1) Ns criamos uma varivel numero (poderia ser qualquer nome) e demos a ela o valor 1. Em seguida, escrevemos a instruo while com os seguintes parmetros: while(numero <= 10){ // ao a ser executada } A instruo acima que dizer "enquanto a varivel numero for menor ou igual a 10, execute o cdigo que estiver dentro das chaves". Caso voc queira que o script escreva vinte vezes, basta alterar de 10 para 20. 2) No se esquea de, logo aps a ao a ser executada, dar um incremento na varivel de controle. No nosso script isso foi conseguido por meio da linha: numero++; Isso faz com que o nmero da varivel seja aumentado em 1. Como fizemos com os scripts anteriores, voc pode alterar os valores, os nomes das varivel e praticar bastante. Este o caminho mais fcil para o aprendizado.
Parte IX Funes
Captulo 35 O que so funes?
Funes so partes muito importantes de uma linguagem de programao. Todas as linguagens de programao tm os seus conjuntos de funes. Mas, o que uma funo? Para simplificar, funes so trechos de cdigo que voc pode executar, fazendo a chamada por meio de um link, um boto ou at mesmo dentro de uma outra funo. O JavaScript tem um bom nmero de funes built-in, ou seja, funes que j fazem parte da linguagem, mas a grande parte das funes que for utilizar ser escrita por voc mesmo. Em outras partes do curso daremos uma olhada nas funes built-in.. Nesta parte, veremos como escrever uma funo e ento execut-la a partir de fontes diferentes.
Este o cdigo HTML para o boto. Observe que voc colocou o cdigo da funo na parte <head></head>, mas o cdigo para o boto deve estar na parte <body></body> da pgina: <form name="form1"> <input type="button" value="Exibir Mensagem" onclick="mensagem()"> </form> Agora execute a pgina e clique no boto. Voc ver a mensagem ser exibida na tela. Observe o trecho do cdigo HTML: onclick="mensagem() nesta parte que definimos a ao que ser executada no evento onclick do boto. Lembrese de colocar a ao que ser executada pelo evento do boto entre aspas e se for uma funo, usar o mesmo nome e tipo de letras (maisculas e minsculas).
<a href="javascript:mensagem()">Clique aqui para exibir a mensagem</a> Simples, no? Observe que usamos um link normal, mas na propriedade href digitamos o cdigo a ser executado, usando a linha: javascript:mensagem() Aqui ns estamos identificando que o link dever executar um cdigo JavaScript e ento passamos o nome da funo. No se esquea de usar os dois pontos (:) depois da palavra JavaScript.
<a href="javascript:mensagem('A funo foi chamada a partir de um link')"> Clique aqui para exibir a mensagem</a> Digite todo o contedo acima em apenas uma linha.
Para executar todo este cdigo, digite as duas funes acima na parte <head></head> da pgina e digite o cdigo seguinte na parte <body></body>: <form name="form1"> <input type="button" value="Resultado" onclick="exibir()"> </form> Para chamar a mesma funo por meio de um link, use o cdigo seguinte: <a href="javascript:exibir()">Clique para ver o resultado</a> Se voc me seguiu at aqui, est muito bem preparado para comear a escrever os seus prprios JavaScripts. Nas prximas partes do curso vamos abordar tpicos mais avanados, o que exige um bom aprimoramento dos conceitos j expostos. Estude bastante e tente alterar todos os valores das variveis, funes, etc. Esta a melhor maneira de aprender.
Para produzir esta mensagem, coloque o cdigo abaixo na parte <body></body> de sua pgina: <script type="text/javascript"> <!-window.alert("O texto da mensagem vai aqui."); //--> </script>
Voc pode ver que, por se tratar do objeto window, pode escrever os seus mtodos sem ter que referenci-lo, ou seja, a linha que produz a mensagem acima pode ser escrita omitindo o nome do objeto, ficando dessa maneira: alert("O texto da mensagem vai aqui."); Recomendo, porm, que voc use sempre os mtodos deste objeto sem omit-lo. O seu cdigo ficar mais fcil de ser lido. Agora, vamos entender o cdigo: 1 - Por meio do mtodo alert do objeto window, ns fazemos a chamada mensagem usando o argumento window.alert(). 2 - Dentro dos parnteses, escrevemos o texto que deve ser exibido pela mensagem. Observe que o texto a ser exibido deve estar entre aspas simples ' ' ou aspas duplas " ". A fim de praticar um pouco mais, cria mais mensagens, alterando o texto a ser exibido.
Agora vamos ao cdigo: Crie uma caixa de texto e um boto, digitando o cdigo abaixo na parte <body></body> de sua pgina: <form name="form1"> Digite o seu nome e clique o boto<br> <input type="text" name="text1"> <input type="button" value="Clique" onclick="exibir()"> </form> Este cdigo cria um formulrio de nome "form1". (voc ver mais tarde que todas as vezes que tiver que acessar os componentes de um formulrio, deve dar nomes a eles), uma caixa de texto de nome "text1" e um boto. Depois de digitado o cdigo acima, vamos passar segunda parte do cdigo: Na parte <head></head> de sua pgina, digite o cdigo seguinte: <script type="text/javascript">
<!-function exibir(){ var nome = document.form1.text1.value; window.alert("Bem-vindo ao meu site, " + nome); } //--> </script> Voc pode ver que o cdigo acima contm uma funo chamada exibir() que quando chamada a partir do clique do boto, exibe uma mensagen contendo um trecho de texto e o contedo da varivel nome que, por sua vez, recebe o valor digitado na caixa de texto. Observe que quando formos exibir texto nas mensagens, temos que coloc-lo entre as aspas (simples ou duplas), mas quando queremos que a mensagem exiba apenas o contedo de uma varivel, as aspas no so necessrias. Fique atento ao modo como juntamos o nosso texto ao contedo da varivel nome, usando um artifcio muito utilizado em programao, a concatenao, que a maneira pela qual juntamos duas ou mais partes de um texto em apenas uma string (linha de texto). Como nos exemplos anteriores, pratique bastante alterando valores e vendo o funcionamento de cada um deles.
Para produzir esta mensagem, digite o cdigo seguinte na parte <body></body> de sua pgina: <script type="text/javascript"> <!-window.confirm("Voc deseja mesmo acessar esta pgina?"); //--> </script> Quando voc executar este cdigo, ver que tanto faz clicar no boto OK ou Cancelar; o seu script no executa nenhuma ao. Para que isso acontea, preciso que o nosso cdigo esteja preparado para executar um procedimento caso o usurio clique no boto OK (para confirmar o que foi perguntado) e outro procedimento caso o usurio clique no boto Cancelar (respondendo no pergunta). Vamos criar um script que pergunta ao usurio se o nome digitado em uma caixa de texto realmente o nome que ele desejava escrever. Veja em seguida a figura produzida pelo script:
Para produzir a caixa de texto e o boto, digite o cdigo seguinte na parte <body></body> de sua pgina: <form name="form1"> Digite o seu nome aqui:<br> <input type="text" name="text1"> <input type="button" value="Confirmar" onclick="checar()"> </form> Agora digite o cdigo abaixo na parte <head></head> de sua pgina: <script type="text/javascript"> <!-function checar(){ var nome = document.form1.text1.value; if(window.confirm("O seu nome mesmo " + nome + "?")){ window.alert("Voc confirmou que o seu nome " + nome); } else{ window.alert("OK, o seu nome no " + nome); } } //--> </script> Ok. Este cdigo mesmo um pouco extenso e merece um pouco mais de ateno. Vamos entend-lo por partes: 1 - Na primeira parte do cdigo ns criamos uma caixa de texto e um boto. Este cdigo
deve ser colocado na parte <body></body> da pgina. 2 - A seguir, ns criamos uma funo chamada checar() na parte <head></head> da pgina. Lembre-se sempre de colocar as suas funes nessa parte da pgina, para que o usurio no corra o risco de chamar uma funo que no esteja completamente baixada pela pgina ainda. 3 - Dentro da funo checar() ns criamos uma estrutura if...else na qual colocamos as aes que devem ser executadas, dependendo da resposta do usurio. Este tipo de estrutura foi estudado nas partes anteriores do curso, e muito importante para um perfeito comando do JavaScript. Se voc ainda tiver alguma dvida, revise os tpicos anteriores. 4 - Por meio da linha de cdigo: if(window.confirm("O seu nome mesmo " + nome + "?")) ns perguntamos ao usurio se o nome que ele digitou realmente o nome desejado. Se a resposta for sim (boto OK), ns exibimos a mensagem contida na linha: window.alert("Voc confirmou que o seu nome " + nome); Caso o usurio no confirme a nossa pergunta (clicando o boto Cancelar), ns fazemos com que o nosso script execute a ao contida na parte else da nossa estrutura if...else. Estude bastante este tipo de cdigo, sempre alterando os valores e tentando adicionar os conceitos j aprendidos nas partes anteriores. Em pouco tempo voc ficar surpreso com o que j capaz de fazer com a linguagem.
<script type="text/javascript"> <!-if(!window.confirm("Deseja mesmo acessar esta pgina?")){ window.history.back(); } //--> </script> Para executar este cdigo, preciso que voc crie duas pginas. Como o script est acessando a propriedade history do objeto window, preciso que voc venha de uma outra pgina. A mensagem que voc escreveu perguntar se deseja acessar a pgina. Se responder Ok, entrar; caso contrrio, o browser voltar pra a pgina anterior. Se voc acessar a pgina diretamente, o script no causar nenhum efeito, j que no h nenhuma pgina armazenada na propriedade history. Observe que o mtodo back() faz com que o browser retorne pgina anterior. importante notar que usamos a instruo if, mas colocamos dentro dos parnteses o operador "!" que quer dizer o seguinte: "se a mensagem no retornar um valor true (verdadeiro), execute o script a seguir". Se o usurio clicar no boto Ok, a pgina ser acessada normalmente. Eu sei que j estamos bem avanados, ento estude bem estes conceitos para um bom aprimoramento das tcnicas apresentadas.
Para produzir este boto, digite o cdigo abaixo na parte <body></body> de sua pgina: <form name="form1"> <input type="button" value="Fechar esta janela" onclick="fechar()"> </form> Agora vamos escrever uma funo que vai perguntar ao usurio se ele deseja mesmo fechar a pgina. Digite o cdigo seguinte na parte <head></head> da pgina: <script type="text/javascript"> <!-function fechar(){ if(window.confirm("Deseja mesmo fechar a pgina?")){ window.close(); } } //--> </script>
Quando voc executar a pgina e clicar no boto, ver uma mensagem, conforma mostrado na figura:
Se clicar no boto OK, a janela ser fechada. Se clicar no boto Cancelar, ela permanecer aberta. Este tipo de cdigo muito bom para janelas pop-up (aquelas janelinhas que usamos constantemente para exibir alguma informao para nossos visitantes). Observe que aqui ns fizemos uso do mtodo close() do objeto window. Como j disse anteriormente, este objeto possui muitos mtodos e propriedades interessantes. Durante o curso veremos os mais importantes.
carro.porta.fechadura.aberta = true; Observe que acessamos a propriedade aberta da porta, que retorna dois valores. Se estiver aberta, o valor ser true e se estiver fechada, ser false. Observe o ponto (.) que separa os elementos da hierarquia. Em JavaScript as coisas no so diferentes. Observe a figura em seguida que mostra bem toda a hierarquia dos objetos em JavaScript:
Vamos agora escrever uma pgina HTML bem simples para que possamos ver o DOM em ao. Crie uma nova pgina HTML, digitando o cdigo seguinte no seu editor favorito. Veja como a pgina ficar. Lembre-se de criar as imagens que faro parte da pgina.
E aqui est todo o cdigo para a pgina: <html> <head> <title>Pgina exemplo do DOM</title> </head>
<body> <h3 align="center">Esta pgina demonstra o DOM em JavaScript</h3> <center><img src="woman_laptop.jpg" width="154" height="170"></center><br> <center><a href="http://www.arquivodecodigos.net">Clique aqui para entrar no site</a></center><br> <center>Para receber nossa newsletter digite o seu nome:</center> <center> <form name="form1"> <input type="text" name="text1"> <input type="button" value="Enviar"> </form> </center> </body> </html> Observe que a partir de agora, sempre que voc criar um formulrio, dever dar nome a ele. Isso fcil de entender. Como todos os elementos de uma pgina seguem o modelo de hierarquia, voc deve segu-la para conseguir acessar as propriedades dos objetos. Vamos ver alguns exemplo como isso conseguido. Depois de criada a pgina apresentada, salve-a em uma pasta. essa pgina que usaremos para os nossos testes. O primeiro script que vamos criar vai obter o ttulo da pgina e exib-lo em uma caixa de mensagem. Abra a nossa pgina de testes e digite o cdigo seguinte na parte <body></body>. Para um melhor controle do que estamos fazendo, pule algumas linhas no seu cdigo e digite o script exatamente antes da tag de fechamento </body>: <script type="text/javascript"> <!-window.alert(document.title); //--> </script> Observe que tudo que fizemos aqui foi criar uma mensagem alert e definir que a mensagem a ser exibida ser o ttulo da pgina. Para acessar a propriedade title do objeto document, voc s precisa usar a linha de cdigo: document.title;
Como este objeto est logo abaixo do objeto window na hierarquia, voc pode perfeitamente acessar a propriedade acima, usando a linha de cdigo seguinte: window.document.title; Por padro, no necessrio usar o nome do objeto window sempre que for acessar o objeto document. Por esta razo ns o omitimos no script. O nosso prximo script um pouco mais avanado. Agora vamos criar uma funo que altera o ttulo da pgina em tempo de execuo. Pense como uma visitante ficaria satisfeito se voc exibisse o nome dele na barra de ttulos do navegador. Ainda com a nossa pgina de testes, digite o cdigo abaixo na parte <body></body> da pgina para criarmos um boto. Para separar esse boto do outro contedo da pgina, digite algumas quebras de linhas <br> para coloc-lo mais abaixo na pgina: <form name="form1"> <input type="button" value="Alterar o ttulo" onclick="alterarTitulo()"> </form> Agora, com o boto devidamente criado, digite o cdigo seguinte na parte <head></head> da pgina: <script type="text/javascript"> <!-function alterarTitulo(){ document.title = "O ttulo da pgina foi alterado."; } //--> </script> Salve a pgina e execute. Voc vai perceber que, assim que clica no boto, ele chama a funo alterarTitulo() e o ttulo da pgina alterado. Legal, no? Agora, que tal colocar o nome do visitante na barra de ttulos? Vamos ao nosso script: O cdigo seguinte pede que o visitante digite o seu nome e dpois o exibe na barra de ttulos juntamente com o ttulo da pgina. Digite o cdigo seguinte na parte <body></body> da pgina de teste: <script type="text/javascript">
<!-var nome = window.prompt("Qual o seu nome?", "Seu nome"); var titulo = document.title + " - Visitante: " + nome; document.title = titulo; //--> </script> Qual tal usar isso em alguma pgina? Tenho certeza de que os seus visitantes ficaro deslumbrados. Vamos entender um pouco como o cdigo foi feito. Primeiro ns criamos uma varivel chamada nome e atribumos a ela uma mensagem prompt, perguntando o nome do visitante. Criamos tambm uma varivel chamada titulo que receber o texto do ttulo do documento mais o valor da varivel nome, que ser informada pelo visitante. A partir da s alterar o ttulo por meio da linha de cdigo: document.title = titulo; Fcil, no?
<form name="meu_form"> <input type="text" name="texto1"> Quando voc d nomes aos elementos, pode acess-los e manipular suas propriedades do jeito que quiser. Voc pode dar qualquer nome aos seus elementos. Apenas tente dar nomes sugestivos que faa com que voc se lembre mais facilmente na hora de acessar cada um deles. Voltando nossa pgina de teste, voc pode ver que temos um formulrio chamado form1, uma caixa de texto chamada text1 e um boto. Observe que aqui no demos um nome ao boto, mas se quisermos acessar suas propriedades (faremos isso no prximo script), que dar um nome a ele. O script que vamos escrever agora exibe uma mensagem assim que o usurio digita o nome na caixa de texto e clica no boto Enviar. O texto a ser exibido usa o valor digitado na caixa de texto. Vamos ao cdigo: Digite este cdigo na parte <head></head> de sua pgina: <script type="text/javascript"> <!-function enviar(){ var nome = document.form1.text1.value; window.alert("Voc digitou: " + nome); } //--> </script>
Agora, precisamos chamar esta funo a partir do boto Enviar. Para tanto, v at o boto e digite a seguinte linha de cdigo: onclick="enviar()" O seu cdigo completo para o boto deve ficar assim: <input type="button" value="Enviar" onclick="enviar()"> Salve a pgina, execute, digite o seu nome na caixa de texto e clique o boto Enviar. Se voc realizou todos os procedimentos corretamente, ver uma caixa de mensagem exibindo o texto Voc digitou "seu nome". Como nos exemplos anteriores, pratique bastante alterando valores e mixando estes scripts com as tcnicas aprendidas anteriormente.
<form name="form1"> <input type="button" name="btn1" value="Clique Aqui" onclick="alterar()"> </form> Este cdigo criar um boto, conforme ilustrado na figura a seguir:
Agora, na parte <head></head> de sua pgina, digite o cdigo: <script type="text/javascript"> <!-function alterar(){ document.form1.btn1.value = "Voc me clicou!!!!"; }
//--> </script> Quando voc executar a pgina e clicar no boto, ver que o texto, que era "Clique Aqui" alterado para "Voc me clicou!!!". E da? Voc pode criar um boto escrito "Pesquisar" e depois que o usurio clicar, voc altera o texto do boto para "Nova Pesquisa". O resto imaginao. Creio que esta introduo ao DOM deu uma boa idia de como voc pode acessar as vrias propriedades dos elementos de suas pginas. Nas prximas partes do curso, vamos dar uma olhada nos objetos mais importantes, suas propriedades, seus mtodos e eventos. Continue praticando.
<script type="text/javascript"> <!-var funcionarios = new Array(); funcionarios[0] = "Roberto Carlos"; funcionarios[1] = "Mrcio Augusto"; funcionarios[2] = "Francisco Gomes"; funcionarios[3] = "Maria Santos"; funcionarios[4] = "Hermes Silva"; //--> </script> Vamos entender o que fizemos. Primeiro criamos uma varivel chamada funcionarios e definimos que ela ser um array (matriz). Observe que usamos a seguinte linha de cdigo:
var funcionarios = new Array(); para criar o objeto array. Em seguida, criamos os elementos do nosso array, usando o nome da varivel e sua posio no array por meio de ndices. Como temos cinco elementos, nosso array vai do ndice 0 at o ndice 4.
<script type="text/javascript"> <!-var nomes = new Array(); nomes[0] = "Roberto"; nomes[1] = "Osmar"; nomes[2] = "Carlos"; nomes[3] = "Augusto"; nomes[4] = "Fernando"; nomes[5] = "Mrcio"; window.alert("O funcionrio do dia : " + nomes[3]); //--> </script> Neste script ns criamos um array chamado nomes e, usando ndices, ns criamos cinco valores diferentes, sendo um para cada ndice. Ao executar a pgina, voc ver que o script varre os elementos do array e exibe, por meio de uma mensagem alert, o seguinte resultado:
Isso conseguido por meio da linha: window.alert("O funcionrio do dia : " + nomes[3]); Para ver como isso funciona, altere o trecho nomes[3] para nomes[4] ou qualquer outro valor que esteja dentro do array, e voc ver como o nome exibido na mensagem ser outro.
Quando estivermos estudando o objeto Math (Sim, este o objeto que usamos para fazer clculos matemticos), veremos como implementar o uso de arrays para criar um script "Link do dia" ou "Frase do dia". Continue praticando at l.
A partir de agora vamos dar uma olhada nos principais eventos em JavaScript. importante lembrar que, no momento em que estou escrevendo este curso, os browsers de gerao 4 esto em alta. A maioria dos internautas est usando IE4+ e NS4. ( Nota: Texto atualizado para as verses 6.0 do IE e 1.0 do Firefox). Embora ambos browsers suportem a maioria dos objetos, eventos e mtodos das verses atuais de JavaScript, importante testar os seus cdigos nos dois browsers para ver a compatibilidade entre eles. Vamos aos eventos. O evento onclick suportado pelos seguintes elementos HTML: A, ADDRESS, APPLET, AREA, B, BDO, BIG, BLOCKQUOTE, BODY, BUTTON, CAPTION, CENTER, CITE, CODE,
CUSTOM, DD, DFN, DIR, DIV, DL, document, DT, EM, EMBED, FIELDSET, FONT, FORM, hn, HR, I, IMG, INPUT type=button, INPUT type=checkbox, INPUT type=file, INPUT type=image, INPUT type=password, INPUT type=radio, INPUT type=reset, INPUT type=submit, INPUT type=text, KBD, LABEL, LEGEND, LI, LISTING, MAP, MARQUEE, MENU, nextID, NOBR, OBJECT, OL, P, PLAINTEXT, PRE, RT, RUBY, S, SAMP, SELECT, SMALL, SPAN, STRIKE, STRONG, SUB, SUP, TABLE, TBODY, TD, TEXTAREA, TFOOT, TH, THEAD, TR, TT, U, UL, VAR e XMP. O evento onclick disparado quando o usurio clica em um elemento HTML. Este evento suportado pela maioria dos elementos HTML. Vamos ver alguns exemplos do uso deste evento.
<form> <input type="button" value="Clique Aqui" onclick="mensagem()"> </form> O cdigo acima cria o boto. Observe que voc definiu no cdigo de criao do boto que, quando ele for clicado (o evento onclick acontecer), a funo mensagem() ser chamada. Agora, digite este cdigo na parte <head></head> da pgina: <script type="text/javascript"> <!-function mensagem(){ window.alert("Voc clicou o boto!"); } //--> </script> Quando voc executar a pgina e clicar o boto, ele chamar a funo por meio do evento onclick e a mensagem ser exibida.
<body onclick="mensagem()"> Agora, v at a parte <head></head> e digite o cdigo que ser chamado por meio deste evento. Este o script: <script type="text/javascript"> <!-function mensagem(){ window.alert("Voc clicou no documento!"); } //--> </script> Quando voc executar a pgina e clicar em qualquer lugar do corpo do documento, a mensagem ser exibida.
<form name="dados" action="http://www.site.com/form.cgi" onsubmit="obrigado()">Digite o seu nome: <input type="text" name="nome"> <input type="submit" value="Enviar"> </form> O cdigo acima criar o formulrio. Observe que foi definida uma ao para o formulrio por meio da linha: action="http://www.site.com/form.cgi" Isso quer dizer que o formulrio ser enviado juntamente com o seu contedo para o endereo especificado pela propriedade action. No evento onsubmit ns definimos o cdigo a ser executado quando o formulrio for enviado. Queremos que uma nova pgina seja
exibida. Portanto, como o evento onsubmit chamar a funo obrigado(), digite na parte <head></head> o cdigo abaixo: <script type="text/javascript"> <!-function obrigado(){ window.location.href = "http://www.site.com/obrigado.htm"; } //--> </script> Nesta parte do cdigo ns criamos a funo obrigado() que ser chamada pelo evento onsubmit do formulrio. Voc pode ver que no momento que o evento for disparado, a linha de cdigo: window.location.href = "http://www.site.com/obrigado.htm"; ser executada, fazendo com que o browser seja direcionado para uma outra pgina.
Para fazer com que o browser inicie o download de algum arquivo logo aps o envio do formulrio, tudo que voc tem a fazer alterar a linha: window.location.href = "http://www.site.com/obrigado.htm"; Para: window.location.href = "http://www.site.com/seu_arquivo.zip"; Isso far com que o browser seja direcionado e, ao perceber que o arquivo no pode ser exibido como uma pgina web, ele iniciar automaticamente o download. Quando estivermos estudando validao de dados, voc ver como usar este evento para varrer o formulrio e conferir se os dados que o usurio informou esto corretos antes de envi-lo.
<a href="http://www.site.com" onmouseover="mensagem()">Passe o mouse aqui</a> Este o cdigo para a criao do link. Neste ponto do curso recomendvel que voc tenha um conhecimento mdio de HTML. Observe que no evento onmouseover do link, ns definimos que a funo mensagem() ser chamada. Como no temos ainda a nossa funo, digite o cdigo seguinte na parte <head></head> da pgina: <script type="text/javascript"> <!-function mensagem(){ window.alert('Voc passou o mouse aqui!'); } //--> </script> Quando voc executar a pgina e passar o mouse sobre o link, ver que a mensagem ser exibida. Quando estivermos estudando as mensagens na barra de status, voc ver exemplos mais teis para este evento.
Para demonstrar como este evento funciona, podemos usar parte do cdigo anterior. Na parte <body></body> da pgina, digite o cdigo: <a href="http://www.site.com" onmouseout="mensagem()">Passe o mouse aqui</a> Observe que o cdigo quase idntico. Eu apenas substitu o evento onmouseover por onmouseout. Agora a funo mensagem() ser exibida quando o mouse sair do link. Vamos fazer uma pequena alterao na funo mensagem(). V at a parte <head></head> e faa as alteraes: <script type="text/javascript"> <!-function mensagem(){ window.alert('Voc retirou o mouse do link!'); } //--> </script> Agora execute a pgina. Voc ver que assim que o mouse retirado do link, a mensagem disparada. Observe que este evento ser usado em conjunto com o evento onmouseover na maioria das vezes, ou seja, o evento onmouseover exibe uma mensagem e o evento onmouseout faz com que esta mensagem desaparea.
E aqui est o cdigo. Digite-o na parte <body></body> da pgina: <form> Digite um palavro aqui: <input type="text" onfocus="alerta()"> </form> No cdigo acima ns criamos uma caixa de texto e definimos que quando ela recebe o foco (o evento onfocus ocorre), a funo alerta() deve ser chamada). Agora, v at a parte <head></head> e escreva a funo que ser chamada. O cdigo est logo abaixo: <script type="text/javascript"> <!-function alerta(){ window.alert('Cuidado com o que vai digitar!'); } //-->
</script> Execute a pgina e tente digitar alguma coisa na caixa de texto. Voc ver que assim que colocar o foco, a mensagem seguinte ser exibida:
Este evento usado largamente para alguma informao na barra de status. Uma outra opo verificar o que o usurio digitou no campo anterior e preencher o campo seguinda com um valor padro, assim que o usurio mover o foco de um para o outro. Use a sua imaginao. As possibilidades so imensas.
Para criar a caixa de texto e o boto acima, digite o cdigo abaixo na parte <body></body> da pgina: <form> Digite o seu e-mail: <input type="text" value="osmar@arquivodecodigo.net" onchange="avisar()"> <input type="button" value="Enviar" onclick="verificar()"> </form> Observe que no cdigo acima, a caixa de texto tem o evento onchange que, se disparado, chama a funo avisar(). Temos ainda o boto no qual o usurio deve clicar, chamando assim a funo verificar(). Vamos agora criar as duas funes que completaro o nosso cdigo.
V at a parte <head></head> de sua pgina e digite o cdigo em seguida: <script type="text/javascript"> <!-var alterado = false; function avisar(){ alterado = true; } function verificar(){ if(alterado == true){ window.alert('O texto da caixa de texto foi alterado!'); } else{ window.alert('O texto da caixa de texto NO foi alterado!'); } } //--> </script> Para ver como este cdigo funciona, execute a pgina e no modifique o texto da caixa de texto. Apenas clique no boto. Voc ver a mensagem informando que o texto no foi alterado. Agora altere o texto da caixa e clique no boto novamente. Voc ver que agora uma mensagem de alerta exibida. Vamos estudar o cdigo e ver porque isso acontece. 1 - Em primeiro lugar ns criamos uma varivel chamada alterado e definimos como sendo do tipo Boolean (true ou false). Observe que no momento que a pgina carregada, essa varivel est definida como falso (false). 2 - A seguir criamos a funo avisar() que ser chamada caso o texto da caixa seja alterado e o evento onchange ocorra. Veja que por meio da linha: alterado = true; a nossa funo indica ao resto do cdigo que o valor da varivel alterado agora true, ou seja, o texto foi alterado e o evento onchange aconteceu. 3 - Agora ns temos a funo verificar() chamada a partir do evento onclick do boto. Esta funo faz um teste por meio do bloco de cdigo: if(alterado == true){
window.alert('O texto da caixa de texto foi alterado!'); } else{ window.alert('O texto da caixa de texto NO foi alterado!'); } que quer dizer: "Se a varivel alterado estiver true (verdadeiro), ento exiba uma mensagem informando que o texto da caixa foi alterado. Se a varivel ainda for false, exiba uma mensagem informando que o texto no foi alterado". Estude bem os conceitos explicados aqui. Esta toda a base para scripts mais dinmicos e poderosos. Tente aplicar estes novos conhecimentos com o que foi estudado anteriormente e vamos em frente.
Para ver um exemplo do evento onblur, ns vamos escrever um script bem til. Vamos criar uma caixa de texto e um boto. Depois que o usurio digitar os dados solicitados, ns vamos, por meio do evento onblur (quando o foco sair da caixa de texto para o boto), fazer uma verificao para saber se a caixa de texto no foi deixada em branco. Para isso, digite o cdigo seguinte na parte <body></body> de sua pgina para criar uma caixa de texto e um boto, como mostrado na figura seguinte:
Aqui est o cdigo: <form name="cadastro"> Digite o seu e-mail: <input type="text" name="email" onchange="avisar()"> <input type="button" value="Enviar">
</form> Observe que criamos uma caixa de texto e em seu evento onblur, definimos que a funo avisar() ser chamada. Esta funo far a verificao do contedo da caixa de texto. Para criar esta funo, digite o cdigo abaixo na parte <head></head> de sua pgina: <script type="text/javascript"> <!-function avisar(){ if(document.cadastro.email.value == ''){ window.alert('Este campo no pode ficar vazio.'); document.cadastro.email.focus(); } else{ window.alert('Os dados esto OK.'); } } //--> </script> Agora execute a pgina, coloque o foco na caixa de texto, ento clique no boto. Na sada da caixa de texto o evento onblur ser chamado e a funo acima ser executada. Por meio das linhas de cdigo: if(document.cadastro.email.value == ''){ window.alert('Este campo no pode ficar vazio.'); document.cadastro.email.focus(); } a funo verifica, usando a hierarquia do DOM (estudada anteriormente), se o valor da caixa de texto igual a "", ou seja, est vazia. Caso este teste seja verdadeiro, uma mensagem ser exibida e a caixa de texto receber o foco novamente. Se o valor da caixa de texto for diferente de "" (no estiver vazia), a segunda parte da instruo if...else executada. claro que esta no a melhor maneira de validar dados. A minha inteno aqui simplesmente exemplificar o uso de cada evento. Nas prximas partes do curso veremos diferentes maneiras de fazer validaes de dados. Tente absorver os conceitos explicados aqui. Voc est preparando o seu caminho para o que vir em seguida.
Vamos ver um exemplo da aplicao deste evento. Queremos exibir uma mensagem de boas-vindas quando o visitante acessar a nossa pgina. Para isso, v at a tag <body> e insira o seguinte cdigo: <body onload="mensagem()"> Isso diz pgina que assim que ela estiver carregada completamente, a funo mensagem() deve ser chamada. Para concluir o cdigo, v at a parte <head></head> e crie a funo a ser executada: <script type="text/javascript"> <!-function mensagem(){ window.alert('Bem-vindo ao meu site. Divirta-se!'); } //--> </script> Agora execute o cdigo e ver a mensagem ser exibida assim que a pgina tiver sido baixada por completo. Existem muitas outras possibilidades de usar este evento. Durante o nosso estudo veremos muitos exemplos prticos.
Queremos que assim que o usurio deixe a nossa pgina, uma mensagem agradecendo-lhe a visita seja exibida. Veja como isso conseguido. V at a tag <body> e altere-a para o seguinte cdigo: <body onunload="mensagem()"> O cdigo acima chamar a funo mensagem() quando a pgina for fechada ou o usurio abrir uma nova pgina. Agora, v at a parte <head></head> da pgina e digite a funo a ser chamada pelo evento: <script type="text/javascript"> <!-function mensagem(){ window.alert('Obrigado por visitar o meu site!'); } //--> </script> Execute o cdigo e experimente abrir uma nova pgina. Voc ver a mensagem exibida por meio da funo mensagem() que, por sua vez, foi chamada por meio do evento onunload da pgina. E aqui ns encerramos os nossos estudos sobre os eventos bsicos. Muitos outros eventos existem, mas estes dependem muito do browser para o qual voc est desenvolvendo. No decorrer do curso, veremos como usar estes eventos tanto no IE (Internet Explorer) quanto no Firefox. Continue praticando e vamos em frente.
Por ser o mais importante, o objeto window foi o escolhido para abrir esta nova fase no nosso livro. Janelas Pop-up so muito importantes para exibir alguma informao aos visitantes do seu site. Para exibir janelas Pop-up, tudo que temos a fazer chamar, por meio do evento onload da pgina principal, uma funo que exibir a janela. Antes de iniciarmos, porm, vamos ver um exemplo de uma janela Pop-up muito usada nos dias atuais. Vamos comear por escrever o cdigo para a funo. Digite o script abaixo na parte <head></head> de sua pgina: <script type="text/javascript"> <!-function abrir(){ window.open("pagina1.htm", "janela", "height=300, width=400,scrollbars=yes"); } //--> </script>
O cdigo acima abrir uma nova janela no tamanho 300x400 com as barras de rolagem. Vamos ver em seguida como habilitar ou desabilitar algumas das propriedades das janelas. importante perceber que no h nenhum espao entre os parmetros para a abertura das janelas Pop-up. Use apenas vrgulas para separar as propriedades. importante manter todos esses parmetros na mesma linha de cdigo. Isso evita erros no interpretador e deixa o seu cdigo mais fcil de ser lido. Agora, insira o cdigo para abrir a janela por meio do evento onload da pgina principal. Veja abaixo como isso feito: <body onload="abrir()"> O cdigo acima faz com que logo aps a abertura da pgina principal, o evento onload seja disparado e a funo abrir() seja executada. Assim que voc executar o cdigo, ver o resultado. Agora vamos entender o nosso cdigo: Pelo mtodo open() do objeto window ns realizamos toda a base de nosso script. Tudo que est entre parnteses define as propriedades da janela a ser aberta. Vamos a eles: Voc pode abrir janelas Pop-up usando os parmetros: window.open(URL, Nome, Parmetros) em que URL o endereo da pgina a ser aberta (Veja que no nosso exemplo eu usei a minha pgina de teste "pagina1.htm". Voc pode usar qualquer outra pgina que esteja disponvel no momento de seus testes.) e Nome o nome que voc dar a sua janela para que possa mais tarde refernci-la em cdigo, usando o atributo target. Os parmetros para as janelas esto explicados logo em seguida: Status (barra de status) A barra de status a barra do browser na qual podemos ver algumas informaes, dicas sobre os links, etc. Veja uma figura exibindo a barra de status:
Para habilitar ou desabiliar a barra de status nas suas janelas Pop-up, simplesmente insira o cdigo:
status=yes (para habilitar) e status=no (para desabilitar) na sequencia de parmetros. O cdigo para uma janela Pop-up sem a barra de status fica assim: window.open("pagina1.htm", "janela", "height=300,width=400,scrollbars=yes,status=no"); E lembre-se! Tudo em apenas uma linha. Location (barra de endereo) Location a barra de endereos dos navegadores e tambm pode ser desabilitada em suas janelas Pop-up. Veja uma figura ilustrando a barra de endereos:
Para habilitar a barra de endereos em suas janelas Pop-up, insira o cdigo seguinte nos parmetros da janela a ser aberta: location=yes Para desabilit-la, use: location=no Observe um script no qual habilitamos tanto a barra de status quanto a barra de endereos (location bar): <script type="text/javascript"> <!-function abrir(){ window.open("pagina1.htm", "janela", "height=300,width=400, scrollbars=yes,status=yes,location=yes"); } //--> </script> Todos os parmetros em apenas uma linha, OK? Toolbar (barra de ferramentas) Toolbar a barra de ferramentas na qual voc tem os botes Voltar, Avanar, Atualizar, etc.,
e tambm pode ser habilitada ou desabilitada em suas janelas Pop-up. Veja uma figura exibindo a barra de ferramentas (toolbar):
Para habilitar a barra de ferramentas, use a propriedade: toolbar=yes E para desabilitar: toolbar=no Veja em seguida um script que abre uma janela Pop-up com a barra de status, a barra de ferramentas e barra de endereos habilitadas: <script type="text/javascript"> <!-function abrir(){ window.open("pagina1.htm", "janela", "height=300,width=400, scrollbars=yes,status=yes,location=yes,toolbar=yes"); } //--> </script> Digite todos os parmetros em apenas uma linha e sem espaos. Menubar (barra de menus) A barra de menus a barra do browser na qual voc tem os menus drop-downs, como os menus de ajuda, editar, exibir e outros. Veja uma figura exibindo a barra de menus (toolbar):
Para habilitar a barra de menus, use: menubar=yes E para desabilitar, use: menubar=no
Observe em seguida o nosso script novamente. Desta vez temos uma janela Pop-up com a barra de status, a barra de endereos, a barra de ferramentas e a barra de menus habilitadas: <script type="text/javascript"> <!-function abrir(){ window.open("pagina1.htm", "janela", "height=300,width=400, scrollbars=yes, status=yes,location=yes, toolbar=yes, menubar=yes"); } //--> </script> Scrollbars (barras de rolagem) As barras de rolagem so as que ficam ao lado da janela do browser e servem para que voc role a pgina caso o seu contedo no puder ser visualizado completamente, usando apenas a parte visvel da janela. Para habilitar as barras de rolagem em suas janelas Pop-up, use o seguinte cdigo: scrollbars=yes e para desabilitar, use: scrollbars=no Agora, para concluir, vamos ao nosso cdigo novamente com todas as opes anteriores habilitadas: <script type="text/javascript"> <!-function abrir(){ window.open("pagina1.htm", "janela", "height=300,width=400, scrollbars=yes,status=yes,location=yes,toolbar=yes, menubar=yes,scrollbars=yes"); } //--> </script> Para testar, digite todos os parmetros em apenas uma linha e execute a pgina.
Left e screenX Left e screenX definem, em pixels, a posio da janela Pop-up a ser aberta a partir do lado esquerdo da janela do browser. isso mesmo. Voc pode escolher a posio em que a sua janela deve abrir. Observe que left usado pelo Internet Explorer e screenX usado pelo Navigator (Netscape). Veja um cdigo que abre uma nova janela com a distncia de 100 pixels a partir do lado esquerdo: <script type="text/javascript"> <!-function abrir(){ window.open("pagina1.htm", "janela", "height=300,width=400, left=100,screenX=100"); } //--> </script> Observe que usei tanto a propriedade left quanto screenX. Isso para assegurar a compatibilidade entre os dois browsers. Se o usurio estiver usando o Internet Explorer, a propriedade left ser usada e se o Netscape estiver sendo usado, ele reconhecer a propriedade screenX. Top e screenY Enquanto as propriedades left e screenX definem a posio da janela em relao ao lado esquerdo da janela do browser, as propriedades top e screenY definem, em pixels, sua posio em relao ao lado de cima da janela (top). A propriedade top usada pelo Internet Explorer e a propriedade screenY usada pelo Netscape. Veja em seguida um cdigo que exibe uma janela Pop-up quase no meio da janela do browser. Vamos usar 200 pixels para as propriedades left e screenX e 200 pixels para as propriedades top e screenY. Vamos ao cdigo: <script type="text/javascript"> <!-function abrir(){ window.open("pagina1.htm", "janela", "height=300,width=400, left=200,screenX=200,top=200,screenY=200"); }
//--> </script> Como sempre, altere todos os valores possveis para que voc consiga assimilar melhor o que est sendo explanado aqui. Height (altura) Height define a altura que a janela ter. Este valor medido em pixels. Nos nossos cdigos anteriores, voc pode ver que a altura de nossa janela de 300 pixels. Observe o trecho de cdigo: height=300 em que a altura da janela definida. Width (largura) Width define a largura da nossa janela Pop-up em pixels. Observe nos scripts anteriores como definimos a largura da pgina para 400 pixels por meio da linha de cdigo: width=400 Como sempre fazemos, tente criar uma janela Pop-up, habilitando e desabilitando os vrios parmetros e aumentando ou diminuindo a largura e a altura da janela. somente praticando que voc ter um controle maior e poder se sentir mais seguro na hora de escrever os seus prprios scripts.
<script type="text/javascript"> <!-function abrir(filename, alt, lar){ var janelaPop = window.open(filename, "janela", "height=" + alt + ",width=" + lar + ",scrollbars=no"); if(janelaPop.document.close()){ janelaPop.document.close(); } } //--> </script> Voc pode observar pelo cdigo acima que para abrir janelas Pop-up agora, tudo que temos a fazer chamar a funo, abrir e fornecer os parmetros solicitados na funo. Vamos analisar esta funo um pouco mais detalhadamente. Observe a linha de cdigo: function abrir(filename, alt, lar) Nesta funo ns temos "filename" que o nome do arquivo a ser aberto. Esse nome de arquivo deve estar entre aspas duplas ou simples, por exemplo, "index2.htm" ou 'index2.htm'. A seguir, temos o parmetro "alt" que define a altura da janela. Esse valor deve ser escrito em nmeros e sem aspas, por exemplo, 300 ou 500. Agora ns temos o parmetro "lar" que define a largura da janela. Como o parmetro "alt",
este tambm deve ser escrito em nmeros. Em seguida ns temos uma varivel que armazena todos os parmetros da nossa janela Pop-up. Aqui eu usei janelaPop, mas voc pode usar qualquer nome. Observe que as propriedades da janela devem estar em apenas uma linha e sem espaos. Agora vamos ver como abrir uma janela Pop-up usando esta funo.
<body onload="abrir('pagina1.htm', 300, 300)"> Observe que no evento onload ns simplesmente fizemos uma chamada funo abrir() e informamos o endereo da pgina a ser aberta, assim como a sua altura e largura por meio da linha de cdigo: abrir('pagina1.htm', 300, 300) Observe ainda que quando um cdigo JavaScript executado usando as tags dos elementos HTML, esse cdigo deve ser colocado entre aspas duplas. Como usamos aspas duplas no cdigo, necessrio que usemos aspas simples para separar os parmetros da janela. Uma das maiores causas de erros em JavaScript, quando voc mistura as aspas simples com as aspas duplas. Agora sim. Voc pode abrir janelas Pop-up com todo o conforto do mundo. Tudo que voc tem a fazer referenciar a funo. Caso deseje habilitar ou desabilitar os parmetros da janela a ser exibida, pode editar diretamente a funo. Vamos ver agora como usar ainda mais a nossa recm-criada funo abrir().
E aqui est o cdigo: <form> <input type="button" value="Abrir uma janela Pop-up" onclick="abrir('pagina1.htm', 400, 300)"> </form> Veja no trecho de cdigo: onclick="abrir('pagina1.htm', 400, 300)" como usamos o evento onclick do boto para abrir uma janela Pop-up, exibindo a pgina "pagina.htm" com 400 pixels de altura e 300 pixels de largura. Como sempre, pratique bastante e vamos ver agora como abrir uma janela Pop-up a partir de um link na pgina.
Digite o cdigo abaixo na parte <body></body> de sua pgina: <a href="javascript:abrir('pagina1.htm', 400, 300)">Clique aqui para abrir uma nova pgina</a> Quando voc executar a pgina e clicar no link, ele chamar a funo abrir() que, por sua vez, exibir uma pgina com 400 pixels de altura e 300 pixels de largura. Observe que para executar um cdigo JavaScript por meio de um link, voc deve usar o seguinte modelo: <a href="javascript:funcao()">Texto do link</a> Em que funcao o nome da funo a ser executada e Texto do link o texto que voc usar para informar a finalidade do link. Agora vamos ver como criar janelas on the fly (nome usado para realizar alguma operao em tempo de execuo).
O primeiro procedimento alterar o nosso script. D uma olhada nele: <script type="text/javascript"> <!-function abrir(){ window.open("pagina1.htm", "janela", "height=300, width=400,scrollbars=yes"); } //--> </script>
Este o nosso script original. Vamos agora retirar o endereo da pgina a ser aberta e criar uma varivel para armazenar essa janela at o momento de exib-la. O novo script fica assim: <script type="text/javascript"> <!-function abrir(){ var janela = window.open("", "janela", "height=300,width=400,scrollbars=yes"); } //--> </script> Veja como agora o endereo da pgina est omitido. Chame esta funo a partir de um
boto, e ver uma pgina totalmente em branco ser exibida. Agora, vamos ver como criar um documento para essa janela. Usando o cdigo anterior, altere-o para o cdigo abaixo: <script type="text/javascript"> <!-function abrir(){ var janela = window.open("", "janela", "height=300,width=400, scrollbars=yes"); janela.document.write("<html>\n<head>\n"); janela.document.write("<title>Esta minha janela</title>\n"); janela.document.write("</head>\n<body>\n"); janela.document.write("</body>\n</html>\n"); janela.document.close(); } //--> </script> Agora execute a pgina. Voc ver que uma janela em branco criada, e logo aps a nossa funo comea a escrever no documento recm-criado. Como a nossa pgina ainda no tem contedo, voc ver apenas o ttulo da pgina ser alterado. Vamos ver em seguida alguns comentrios sobre este script. Primeiro ns criamos uma varivel janela, qual atribumos a nossa janela Pop-up. Em seguida, usando o mtodo write, ns comeamos a criar o documento, escrevendo as tags como se estivssemos escrevendo uma pgina HTML normal. Veja em seguida o trecho do cdigo que escreve as tags <html> e <head>: janela.document.write("<html>\n<head>\n"); Observe que o contedo a ser escrito na pgina deve estar entre aspas duplas. Perceba ainda o uso do smbolo "\n" para efetuar a quebra de linha. Usando este mesmo esquema de codificao, voc pode escrever qualquer coisa na nossa janela Pop-up. Veja que quando terminamos de escrever o contedo, usamos a linha de cdigo: janela.document.close(); Para dizer ao browser que j terminamos o nosso trabalho.
Agora vamos repetir o nosso script, mas desta vez vamos escrever alguma coisa no corpo da pgina. Veja o cdigo abaixo: <script type="text/javascript"> <!-function abrir(){ var janela = window.open("", "janela", "height=300,width=400, scrollbars=yes"); janela.document.write("<html>\n<head>\n"); janela.document.write("<title>Esta minha janela</title>\n"); janela.document.write("</head>\n<body>\n"); janela.document.write("<h1>Arquivo de Cdigos</h1>\n"); janela.document.write("</body>\n</html>\n"); janela.document.close(); } //--> </script> Agora, se voc executar a pgina e chamar a funo abrir(), ver uma nova janela ser aberta com uma linha de texto escrita. Esta linha de texto foi conseguida por meio da linha: janela.document.write("<h1>Arquivo de Cdigos</h1>\n"); colocada logo aps a linha de cdigo que abre a tag <body>. importante lembrar que um conhecimento bsico de HTML ajuda muito nesta parte do curso. Para praticar um pouco mais com a criao de janelas on the fly, experimente escrever na pgina, inserir mais elementos HTML, fazer o texto ficar em negrito, inserir quebras de linha e outras coisas. somente praticando que voc conseguir assimilar todos estes conceitos.
Para a criao da caixa de texto e do boto, digite o cdigo abaixo na parte <body></body> de uma nova pgina: <form name="form1"> Digite o seu nome: <input type="text" name="nome"> <input type="button" value="Enviar" onclick="abrir()"> </form> Veja que criamos um formulrio chamado "form1", uma caixa de texto chamada "nome" e um boto escrito "Enviar". No evento onclick do boto ns definimos uma chamada funo abrir() que usaremos para abrir uma nova pgina e escrever o contedo extrado da caixa de texto.
Agora, para criar a funo que abrir a janela Pop-up, digite o cdigo seguinte na parte <head></head> da pgina: <script type="text/javascript"> <!-function abrir(){ var janela = window.open("", "janela", "height=300,width=400, scrollbars=yes"); var texto = document.form1.nome.value; janela.document.write("<html>\n<head>\n"); janela.document.write("<title>Esta minha janela</title>\n"); janela.document.write("</head>\n<body>\n"); janela.document.write("<center>Prezado Cliente</center>\n"); janela.document.write("<center><b>" + texto + "</center></b>\n"); janela.document.write("<center>Bem-vindo</center>\n"); janela.document.write("</body>\n</html>\n"); janela.document.close(); } //--> </script> Assim que voc executar a pgina, digitar o seu nome na caixa de texto e clicar no boto, ver uma nova janela ser aberta, exibindo trs linhas de texto, e uma delas ser o nome que voc digitou na caixa de texto. Para pegar o contedo da caixa de texto, ns usamos a seguinte linha de cdigo: var texto = document.form1.nome.value; Voc pode ver que usamos as tags <center></center> para centralizar o texto no documento e as tags <b></b> para fazer o texto ficar em negrito. Por meio da linha: janela.document.write("<center><b>" + texto + "</center></b>\n"); ns pegamos o valor da caixa de texto e o escrevemos na pgina, usando o smbolo de concatenao "+".
<script type="text/javascript"> <!-function abrir(){ var janela = window.open("", "janela", "height=300,width=400, scrollbars=yes"); janela.document.write("<html>\n<head>\n"); janela.document.write("<title>Esta minha janela</title>\n"); janela.document.write("</head>\n<body>\n"); janela.document.write("<center>Arquivo de Cdigos</center>\n"); janela.document.write("</body>\n</html>\n"); janela.document.bgColor = "green"; janela.document.fgColor = "white"; janela.document.close(); } //--> </script> Agora execute a pgina, chame a funo e ver uma janela Pop-up se abrir. Desta vez a nossa janela ter a cor de fundo verde (green) e a cor do texto branca (white). Isso foi conseguido por meio das duas linhas de cdigo: janela.document.bgColor = "green"; janela.document.fgColor = "white"; Em que bgColor a cor de fundo da pgina (Background Color) e fgColor a cor do texto da pgina (Foreground Color).
Altere os valores das cores (voc pode usar tanto o nome da cor (em ingls) quanto o valor da cor em valores hexadecimais) e veja o resultado. Pratique bastante estes cdigos, pois so o seu ponto de partida para a criao de cdigos realmente teis.
Aqui est o cdigo para o boto: <form> <input type="button" value="Fechar esta janela" onclick="self.close()"> </form> Assim que voc executar a pgina e clicar no boto, ela ser fechada. Observe como o evento onclick do boto fecha a janela: onclick="self.close()" Voc tambm pode usar window.close() no lugar de self.close().
<a href="javascript:window.close()">Clique aqui para fechar esta janela</a> Assim que voc executar a pgina e clicar no link, a janela ser fechada.
<script type="text/javascript"> <!-function abrir(){ window.open("pagina1.htm", "janela", "fullscreen,scrollbars"); } //--> </script> Agora basta chamar a funo por meio de um link ou boto, e uma pgina ser aberta em tela cheia, exibindo as barras de rolagem.