Escolar Documentos
Profissional Documentos
Cultura Documentos
(Curso Bsico)
Verso 0.01
09 de abril de 2005
Apesar dos nomes bem parecidos, Java no o mesmo que JavaScript. Estas so duas tcnicas
diferentes de programao na Internet. Java uma linguagem de programao. JavaScript uma linguagem
de hiper-texto. A diferena que voc realmente pode criar programas em Java. Mas muitas vezes voc
precisa apenas criar um efeito bonito sem ter que se incomodar com programao. A soluo ento
JavaScript pois fcil de entender e usar.
Podemos dizer que JavaScript mais uma extenso do HTML do que uma linguagem de
programao propriamente dita. O primeiro browser a suportar JavaScript foi o Netscape Navigator 2.0, mas
a verso para o "Mac" parece apresentar muitos bugs.
Exemplo:
<HTML>
<HEAD>
<TITLE>Exemplo</TITLE>
<!--
Se houvesse alguma funo seria bom declar-la aqui!!!
-->
</HEAD>
<BODY>
Esta linha est escrita em HTML
<SCRIPT>
importante ressaltar que todas as linhas devem ser terminadas com; (ponto e virgula) a menos
que a prxima instruo seja um else e se voc precisar escrever mais de uma linha para executar uma
condio seja ela em uma estrutura for, if ou while, este bloco de instrues deve estar entre { }
(chaves). Inclusive a definio de funes segue este modelo, ou seja, todo o cdigo da funo deve estar
limitado por { (no incio) e } (no final).
Um browser que no suporta JavaScript, ele no conhece a TAG <SCRIPT>. Ele ignora a TAG e
logicamente tudo todo o cdigo que estiver sendo limitado por ela, mostrando todo o cdigo na tela como se
fosse um simples texto HTML. Deste modo o usurio veria o cdigo JavaScript do seu programa dentro do
documento HTML e como certamente essa no deve ser sua inteno, existe um meio de esconder o
cdigo JavaScript dos browsers que no conhecem esta linguagem, basta utilizar os comentrios HTML
<!- - e -->. O cdigo do nosso exemplo anterior ficaria assim:
<HTML>
<HEAD>
<TITLE> Exemplo </TITLE>
<!--
...
Se houvesse alguma funo seria bom declar-la aqui!!!
...
-->
</HEAD>
<BODY>
Esta linha est escrita em HTML
<SCRIPT>
<!-- Esconde o cdigo JavaScript dos browsers mais antigos
document.write("Aqui j JavaScript");
// -->
</SCRIPT>
Voltamos para o HTML
</BODY>
</HTML>
Note que esse artifcio no esconde completamente o cdigo JavaScript, o que ele faz prevenir
que o cdigo seja mostrado por browsers mais antigos, porm o usurio tem acesso a todas as informaes
do cdigo fonte de sua Home Page (tanto HTML, quanto JavaScript).
1.2) Variveis
Em JavaScript, variveis dinmicas podem ser criadas e inicializadas sem declaraes formais.
Existem dois tipos de abrangncia para as variveis:
Global - Declaradas/criadas fora de uma funo. As variveis globais podem ser acessadas em
qualquer parte do programa.
Local - Declaradas/criadas dentro de uma funo. S podem ser utilizadas dentro da funo
onde foram criadas e precisa ser definida com a instruo Var.
Com relao nomenclatura, as variveis devem comear por uma letra ou pelo caractere
sublinhado _, o restante da definio do nome pode conter qualquer letra ou nmero.
importante ressaltar que a varivel Cdigo diferente da varivel cdigo, que por sua vez
diferente de CODIGO, sendo assim, muito cuidado quando for definir o nome das variveis, utilize sempre
um mesmo padro.
Existem trs tipos de variveis: Numricas, Booleanas e Strings.
Como j era de se esperar, as variveis numricas so assim chamadas, pois armazenam nmeros,
as Booleanas valores lgicos (True/False) e as Strings, seqncia de caracteres. As strings podem ser
delimitadas por aspas simples ou duplas, a nica restrio que se a delimitao comear com as aspas
simples, deve terminar com aspas simples, da mesma forma para as aspas duplas. Podem ser includos
dentro de uma string alguns caracteres especiais, a saber:
\t - posiciona o texto a seguir, na prxima tabulao;
\n - passa para outra linha;
\f - form feed;
\b - back space;
\r - carrige return.
O JavaScript reconhece ainda um outro tipo de contudo em variveis, que o NULL. Na prtica isso
utilizado para a manipulao de variveis no inicializadas sem que ocorra um erro no seu programa.
Quando uma varivel possui o valor NULL, significa dizer que ela possui um valor desconhecido ou nulo. A
representao literal para NULL a string 'null' sem os delimitadores. Quando referenciado por uma funo
ou comando de tela, ser assim que NULL ser representado. Observe que NULL uma palavra reservada.
1.3) Operadores
Adio ( + )
Exemplo:
V01=5
V02=2
V=V01+V02 // resulta em: 7
Subtrao ( - )
Exemplo:
V01=5
V02=2
V=V01-V02 // resulta em: 3
Diviso ( / )
Exemplo:
V01=5
V02=2
V=V01/V02 // resulta em: 2.5
Incremento ( ++ )
Pode acontecer de duas formas:
++Varivel ou
Varivel++
Exemplo:
V01 = 5
V02 = ++V01 // Resulta em 6
V03 = V01 // Resulta em 6
Exemplo:
V01 = 5
V02 = V01++ // Resulta em 5
V03 = V01 // Resulta em 6
Decremento ( -- ):
Pode acontecer de duas formas:
--Varivel ou
Varivel--
Exemplo:
V01 = 5
V02 = --V01 // Resulta em 4
V03 = V01 // Resulta em 4
Exemplo:
V01 = 5
V02 = V01-- // Resulta em 5
V03 = V01 // Resulta em 4
&& E lgico
|| Ou lgico
= Atribuir
+= Soma ou concatenao e atribuio: x+=5 // o mesmo que: x=x+5
-= Subtrao e atribuio. x-=5 // o mesmo que: x=x-5
*= Multiplicao e atribuio. x*=5 // o mesmo que: x=x*5
/= Diviso e atribuio. x/=5 // o mesmo que: x=x/5
%= Mdulo e atribuio. x%=5 // o mesmo que: x=x%5
Quando compramos um televisor, recebemos um manual, que por mais simples que possa ser, traz
sempre algumas especificaes tcnicas do aparelho. Por exemplo: Polegadas da tela, voltagem de
trabalho, entre outras. Essas especificaes tcnicas transferido para o vocabulrio da OOP so as
propriedades do objeto (televisor). Em JavaScript essas propriedades nada mais so do que variveis
internas do objeto.
Um objeto est sujeito a determinados mtodos. Um mtodo geralmente uma funo que gera
alguma informao referente ao objeto. Por exemplo ao mudar de canal, ns estamos executando uma
funo do televisor, o mesmo ocorre quando aumentamos ou diminumos o volume.
Seguindo nosso exemplo, quando a tenso da rede sai da faixa de trabalho no caso de uma queda
de tenso ou uma sobrecarga, o sistema de segurana da Tv, no permite que ocorram danos no aparelho,
quando muito, queima o fusvel da fonte de alimentao. Em aparelhos mais modernos, quando uma
emissora sai do ar, a tela fica azul, sem aquele chiado irritante. Sendo assim podemos concluir que nosso
objeto est sujeito a algumas situaes, estas situaes podem ocorrer a qualquer momento, e so
chamadas de eventos.
Trabalhar com objetos a nica forma de manipular os arrays, vejamos como: Digamos que
queremos implementar uma lista de clientes, nosso objeto poderia ser definido assim:
Function CriaClientes(nome,endereco,telefone,renda)
{
this.nome=nome;
this.endereco=endereco;
this.telefone=telefone;
this.renda=renda;
}
A propriedade this especifica o objeto atual como sendo fonte dos valores passados a funo.
Agora, basta criar o nosso objeto:
Maria = New CriaClientes('Maria Aparecida','Rua Guilhotina dos Patos, S/N','332-1148',1300)
Function Matriz(n)
{
this.length=n
for (var contador=1 ; contador <=n ; conatdor=contador+1)
{
this[contador]=""
}
}
Clientes=New Matriz(3)
Clientes[1]=New CriaClientes("Charlene","Rua A, 51","331-0376",1150)
Clientes[2]=New CriaClientes("Jos","Rua das Avencas, S/N","332-2781",950)
Clientes[3]=New CriaClientes("Joaquim Manoel", "Rua Amancio Pinto, 171", ,1000)
Teramos agora:
Clientes[1].nome = "Charlene";
Clientes[2].telefone="332-2781"
Clientes[3].telefone=null
Continue
Var
With
Function
Return
Comment
3.1) VAR
Em JavaScript, nem sempre necessrio definir uma varivel antes de utiliz-la, o que ocorre com
variveis globais, porm, importante ressaltar que a utilizao da instruo var, a nvel de
documentao muito bem-vinda. J nas definies de variveis locais, obrigatrio a utilizao da
instruo var.
Voc pode armazenar um valor na prpria linha de definio da varivel, se no o fizer, para o
JavaScript, esta varivel possui um valor desconhecido ou nulo.
No obrigatria a utilizao de uma instruo var para cada varivel declarada, na medida do
possvel, voc pode declarar vrias variveis em uma s instruo var.
Var NomeDaVarivel [ = <valor> ];
Var Contador = 0;
Var Inic="",Tolls=0,Name="TWR";
Var Teste; // Neste caso, Teste possui valor null
Quando voc precisa manipular vrias propriedades de um mesmo objeto, provavelmente prefere
no ser obrigado a repetir todas as vezes a digitao do nome do objeto. A instruo with, permite fazer
isso eliminando a necessidade de digitar o nome do objeto todas as vezes.
Forma geral:
with (<objeto>)
{
... Instrues
}
Por exemplo vamos supor que ser necessrio executar uma srie de operaes matemticas:
with (Math)
{
a=PI;
b=Abs(x);
c=E;
}
3.3) Break
Pode ser executado somente dentro de loops for... ou while... e tem por objetivo o
cancelamento da execuo do loop sem que haja verificao na condio de sada do loop, passando a
execuo a linha imediatamente posterior ao trmino do loop.
Forma geral:
Break
Exemplo:
Neste exemplo, quando a varivel x atinge o valor 5 o loop cancelado, e impresso o
nmero 5 na tela.
For (var x=1 ; x < 10 ; x++)
{
If (x = = 5)
{
Break
}
}
3.4) Continue
Pode ser executado somente dentro de loops for... ou while ... e tem por objetivo o
cancelamento da execuo do bloco de comandos passando para o incio do loop.
Forma geral:
Continue
Exemplo:
Neste exemplo, sero impressos os nmeros de 1 a 10, com exceo do nmero
5, ou seja, quando a varivel x atinge o valor 5 a execuo do bloco de comandos interrompida e
o controle retorna ao incio do loop, onde a varivel x ser incrementada.
For (var x=1 ; x < 10 ; x++)
{
If (x = = 5)
{
continue
}
document.write(x)
}
3.5) Funes
As funes podem ser definidas como um conjunto de instrues, agrupadas para executar uma
determinada tarefa. Dentro de uma funo pode existir uma chamada a outra funo. Para as funes
podem ser passadas informaes, as quais so chamadas de parmetros.
As funes podem ou no retornar alguma informao, o que feito com o comando Return.
A definio de uma funo feita da seguinte forma:
Funes so melhor declaradas entre as tags <head> de sua pgina HTML. Funes so
frequentemente chamadas por eventos acionados pelo usurio. Assim parece razovel colocar as funes
entre as tags <head>. Elas so carregadas antes que o usurio faa alguma coisa que possa chamar uma
funo.
!"$#&%'(#)*)+,.-(/01- 2$43)5,7684,95/$:);5;66,#$/<)5,=>.?/$@BA0/$C"$#7"#
!#.6,DE$8$F,-;G8,.)8H
3.6) Comentrios
Comentrios podem ser formulados de varias maneiras, dependendo do efeito que voc precisa.
Para comentrios longos de vrias linhas, ou blocos de comentrios, use:
/* O barra-asterisco inicia um bloco de comentrio que pode conter quantas linhas voc precisar
todo o texto aps o barra asterisco ignorado, at que asterisco-barra seja encontrado, terminando assim o
bloco de comentrio */
Para comentrios de uma linha, use barra dupla (//) para introduzir o comentrio. Todo o texto
seguindo este simbolo at o prximo carrige-return ser considerado um comentrio e ignorado para fins de
processamento. Exemplo:
// este texto ser tratado como comentrio
Os cdigos JavaScript podem ser colocados em campos de comentrio de modo que browsers
antigos no mostrem o prprio cdigo JavaScript, como vemos a seguir:
<html>
<head>
<script language="LiveScript">
<!-- hide script from old browsers
Function hello(){
alert("Al mundo!!!");
}
<body>
...
<script>hello();</script>
...
</body>
</html>
Existem algumas estruturas de controle que lhe permitem modificar o fluxo de execuo de um
programa. Estas estruturas permitem executar o cdigo baseado em condies lgicas ou um nmero
determinado de vezes.
For...
For...In
If...Else...
While...
3.7.1) For...
Repete uma seo do cdigo um determinado nmero de vezes. Consiste de uma declarao que
define as condies da estrutura e marca seu incio. Esta declarao seguida por uma ou mais
declaraes executveis, que representam o corpo da estrutura.
Estabelece um contador inicializando uma varivel com um valor numrico. O contador
manipulado atravs da <ao> especificada no comando toda a vez que o loop alcana seu fim,
permanecendo nesse loop at que a <condio> seja satisfeita ou a instruo Break seja executada.
Forma geral:
For (<inicializao> ; <condio> ; <ao>)
{ Corpo da Estrutura }
No exemplo abaixo, o bloco de instrues ser executado 10 vezes, pois a varivel contador
inicializada com o valor 1 e o bloco de instrues ser executado enquanto contador for menor que 11. A
cada execuo do bloco de instrues contador incrementado.
For (var contador = 1; contador < 11; contador++)
{ document.write(Contador); }
Este comando tem por objetivo, procurar a ocorrncia de uma varivel, dentro das propriedades de
um objeto, ao encontrar a referida varivel, um bloco de comandos pode ser executado.
Forma geral:
For (variavel In objeto)
{
bloco de comandos
}
Exemplo: Esta funo procura por uma propriedade do Objeto, cujo o nome esteja especificado
pela varivel Procura, onde Nome uma string correspondendo ao nome do objeto.
Function SearchIn(Procura,Objeto,Nome)
{
Var ResultadoDaBusca = ""
For (Procura In Objeto)
{
document.write(Nome+"."+Procura+"="+Objeto[Procura]+"<BR>");
}
}
3.7.3) If...Else...
A estrutura If... executa uma poro de cdigo se a condio especificada for verdadeira. A estrutura
pode tambm ser especificada com cdigo alternativo para ser executado se a condio for falsa.
Function VerificaIdade(anos)
{
If anos >= 16
{
Return ('J pode votar!')
}
else
{
Return (' Ainda muito cedo para votar...')
}
}
Uma alternativa para economizar If's seria a utilizao de uma expresso condicional, que funciona
para situaes mais simples, o exemplo acima ficaria da seguinte forma:
3.7.5) While
Outro tipo de loop aquele baseado numa condio ao invs de no nmero de repeties. Por
exemplo, suponha que voc necessita que um determinado processo seja repetido at que um determinado
teste d um resultado verdadeiro ou seja executada a instruo Break.
Forma geral:
while (<condio>)
{ Corpo da Estrutura }
No exemplo abaixo, o bloco de instrues ser executado 10 vezes, pois a varivel Contador
inicializada com o valor 1 e o bloco de instrues ser executado enquanto Contador for menor que 11. A
cada execuo do bloco de instrues Contador incrementado.
Var Contador=1;
While ( Contador < 11 )
{ document.write(Contador++) ;}
A linguagem JavaScript alm dos recursos descritos anteriormente, ainda possui algumas funes
internas, que no esto ligadas diretamente a nenhum objeto, porm isso no impede que essas funes
recebam objetos como parmetros. A seguir estas funes sero vistas detalhadamente:
alert - Mostra uma caixa de alerta, seguido de um sinal sonoro e o boto de OK.
Ex:
alert('Esta uma janela de alerta!')
confirm - Mostra uma caixa de dilogo, seguida de um sinal sonoro e os boto de OK e Cancel.
Retorna um valor verdadeiro se o usurio escolher OK.
Ex: retorno=confirm('Deseja prosseguir?')
parseFloat - Converte uma string que representa um nmero, para um nmero com ponto flutuante.
Caso a string no possa ser avaliada, a funo retorna 0.
Ex: document.write(parseFloat("-32.465e12")
parseInt - Converte uma string, que representa um nmero em uma base predefinida para base 10.
Caso a string possua um caracter que no possa ser convertido, a operao para, retornando o valor antes
do erro.
Ex: paseInt("string",base)
parseInt("FF",15) // retorna 256
parseInt("3A",10) // retorna 3
parseInt("10",2) // retorna 2
onde:
label - texto que aparece ao lado da caixa.
valor - o contedo inicial da caixa.
JavaScript organiza todos os elementos de uma Home Page dentro de uma hierarquia. Cada
elemento visto como um objeto. Os objetos podem ter propriedades, mtodos e responder a certos
eventos. Por isso muito importante entender a hierarquia dos objetos HTML.
Voc entender rapidamente como isto funciona com a ajuda de um exemplo. O exemplo seguinte
uma pgina HTML simples:
No exemplo acima, ns temos, um link, duas imagens, e um formulrio com dois campos texto e
dois botes. Do ponto de vista do JavaScript a janela do browser um objeto window, que contm certos
elementos, como a barra de status.
Dentro da janela, ns podemos carregar uma pgina HTML. Esta pgina um objeto document.
Desta forma o objeto document representa o documento HTML (que est carregado no momento). O objeto
document muito importante, em JavaScript voc sempre o usar muito. As propriedades e mtodos do
objeto document sero vistas detalhadamente, mais adiante.
Ns podemos obter informaes de diversos objetos e ento manipul-los. Para isso ns devemos
saber como acessar os diferentes objetos. Voc primeiro verifica o nome do objeto no diagrama de
hierarquia. Se voc ento precisar saber como referenciar a primeira imagem na pgina HTML, basta seguir
o caminho hierrquico. Voc deve percorrer o diagrama de cima para baixo, o primeiro objeto chamado
document, a primeira imagem representada por Imagem[0]. Desta forma ns podemos acessar este
objeto em JavaScript, da seguinte forma: document.Imagem[0].
Se voc quiser saber o que o usurio digitou dentro do primeiro elemento do formulrio, voc
primeiro precisa pensar em como acessar esse objeto. Novamente ns seguiremos o diagrama de
hierarquia, de cima para baixo. Siga o caminho que leva at Elem[0]. Todos os nomes de objeto por onde
voc passou tem que constar na referncia ao primeiro elemento do formulrio. Desta forma voc pode
acessar o primeiro elemento texto assim: document.Form[0].Elem[0]
Mas como obteremos agora, o texto digitado? Este elemento texto possui uma propriedade
chamada value - no se preocupe agora, com propriedades, mtodos ou eventos, eles sero vistos
detalhadamente mais adiante - esta propriedade armazena o contedo do objeto, ou seja, o texto digitado. A
seguinte linha de cdigo obtm o texto digitado:
nome = document.forms[0].elements[0].value;
A string armazenada na varivel name. Ns podemos agora trabalhar com esta varivel. Por
exemplo, ns podemos criar uma janela popup com alert("Oi "+name);. Se a entrada for "Anderson" o
comando alert("Oi "+name) abrir uma janela popup com o texto "Oi Anderson".
Se voc estiver trabalhando com pginas muito grandes pode ficar um pouco confuso referenciar
objetos diretamente pelo endereamento do diagrama de hierarquia, voc pode ter referncias do tipo:
document.forms[3].elements[15] ou document.forms[2].elevent[21]. Para evitar esse problema voc pode dar
nomes diferentes aos objetos, vejamos o seguinte fragmento de um documento HTML:
<form NAME="clientes">
Nome: <input TYPE="text" NAME="empresa" value=" ">
...
document.forms[0].elements[0].value;
Podemos usar:
document.clientes.empresa.value;
Location
Propriedades:
hash - Esta propriedade funciona de forma semelhante ao famigerado "go to" de algumas
linguagens de programao. Normalmente usado em links, que acessam a mesma pgina.
Ex: O exemplo abaixo demonstra a utilizao da propriedade hash, para criar um link para
outro trecho da mesma pgina.
<HTML>
...
<A HREF = "location.hash='2'">Item 1</A>
...
<A NAME = "1"> </A>Item 1
...
<A NAME = "2"> </A>Item 2
...
</HTML>
host - Armazena uma string com o formato "hostname:port" da pgina HTML atual.
Ex: alert('Demostrao da propriedade host: '+location.host)
Mtodos:
toString - Converte o contedo do objeto location para uma string.
Ex: alert('location.toString() = '+location.toString) // Este valor o mesmo que location.href.
5.1) Select
Cria uma listBox, no mesmo padro que no Windows. Onde o usurio pode selecionar uma ou mais
opes disponveis, depende da configurao desejada pelo programador.
Forma geral:
<SELECT
NAME = "selectName"
[SIZE = tamanho]
[MULTIPLE]
[onBlur = "ao"]
[onChange = "ao"]
[onFocus = "ao"] >
<OPTION
VALUE = "optionValue"
[SELECTED] >
Texto
...
<OPTION...>
</SELECT>
onde:
selectName - Nome dado pelo programador, para o objeto select
tamanho - Nmero de linhas, da caixa select.
MULTIPLE - Se definido, permite que vrias opes sejam selecionadas.
ao - Define o que fazer quando algum evento ocorrer.
optionValue - Valor que enviado as servidor, quando o formulrio submetido.
SELECTED - Se definido, informa a opo que ser inicialmente selecionada.
defaultSelected - Informa o tem que detm a seleo inicial. Pode-se alterar este valor,
dede que o formulrio ainda no tenha sido exibido.
Ex: selectName.options[Indice].defaultSelected
text - Armazena o texto que aparece como opo do menu select. Este texto definido aps
a TAG <OPTION>.
Ex: selectName.options[indice].text
Eventos:
onBlur - Ocorre quando o objeto perde o foco.
onChange - Ocorre quando o objeto perde o foco e seu contedo foi alterado.
onFocus - Ocorre quando o objeto recebe o foco.
Este objeto mostra um boto 3-D (no mesmo padro do Windows). ao ser pressionado, ele produz um
efeito de profundidade e geralmente chama uma funo.
Pode ser utilizado para inmeras aplicaes, dependendo apenas de sua imaginao, a nica
precauo defini-lo dentro de um formulrio.
Forma geral:
<Input Type="button" Name="NomeDoBoto" Value="Rtulo" onClick="RespostaAoEvento">
Onde:
Type - define o objeto
Name - define o nome do objeto para nossa aplicao. por este nome que referenciamos alguma
propriedade deste objeto
Value - define o que ser escrito na face do boto
onClick - o nico evento possvel para este objeto, normalmente define uma funo a ser
executada quando clicamos no boto.
Propriedades:
NAME: Informa o nome do objeto button em forma de string, da mesma forma como
definido no campo Name que foi utilizado na definio do boto. importante no confundir o campo Name
com a propriedade NAME, veja a diferena:
VALUE: Informa o label do boto em forma de string da mesma forma como foi definido no
campo Value que foi utilizado na definio do boto.
OK.Value // equivale a "Confirma"
Mtodos:
click: Este mtodo simula um clique do mouse no objeto button, ou seja, executa um
procedimento associado a um boto como se o boto tivesse sido pressionado mas sem que o usurio
tenha realmente clicado.
OK.click() // executaria a funo ConfirmaInformacoes
Exemplo:
<FORM>
<INPUT TYPE="button" VALUE="Clique aqui!!!" NAME="botao1" onClick="alert('A
propriedade NAME deste boto :'+botao1.name+'\nA propriedade VALUE deste boto
:'+botao1.value)")>
</FORM>
5.3) Navigator
Neste objeto ficam armazenadas as informaes sobre o browser que est sendo utilizado.
Forma geral:
Navigator.propriedade
Propriedades:
appCodeName - Armazena o codnome do browser.
Ex: Navigator.appCodeName
Exemplo:
<HTML>
<HEAD>
<TITLE>JavaScript </TITLE>
<SCRIPT>
<!--
function getBrowserName() {
function getBrowserVersion() {
document.forms[0].elements[0].value = navigator.appVersion;
}
function getBrowserCodeName() {
document.forms[0].elements[0].value = navigator.appCodeName;
}
function getBrowserUserAgent() {
document.forms[0].elements[0].value = navigator.userAgent;
}
function getBrowserNameVersion() {
document.forms[0].elements[0].value = navigator.appName + " " + navigator.appVersion;
}
// -->
</SCRIPT>
</HEAD>
<BODY >
<CENTER>
<FORM NAME="detect">
<INPUT TYPE="text" NAME="browser" SIZE=50 MAXLENGTH=50 VALUE=" Seus dados
sero mostrados nesta janela ! ">
<BR><BR><BR>
<INPUT TYPE="button" VALUE="Nome do Navegador" onClick="getBrowserName()">
<INPUT TYPE="button" VALUE="Verso do Navegador" onClick="getBrowserVersion()">
<INPUT TYPE="button" VALUE="E-mail" onClick="getBrowserCodeName()">
<BR><BR>
<INPUT TYPE="button" VALUE="E-mail e verso" onClick="getBrowserUserAgent()">
<BR> <BR>
<INPUT TYPE="button" VALUE="Nome e Verso" onClick="getBrowserNameVersion()">
</FORM>
</BODY>
</HTML>
5.4) Form
Os formulrios tem muitas utilidades, uma das principais seria a transferncia de dados dentro da
prpria pgina HTML, sem que para isso seja necessria a interveno de qualquer outro meio externo.
Ao se criar um formulrio na pgina HTML, automaticamente criada uma referncia para este
formulrio, que fica guardada na propriedade form do objeto document. Como voc deve ter visto na pgina
Como voc pode notar, cada formulrio criado em uma pgina HTML, considerado um objeto
distinto, tendo suas prprias referncias, mtodos, propriedades e eventos associados. A forma de acessar-
mos diferenciadamente esses formulrios dentro da pgina HTML, utilizar a propriedade form do objeto
document.
Forma geral:
<FORM NAME="Nome"]
[ACTION="URL"]
[METHOD="GET | POST"]
[onSubmit="evento"]>
Onde:
Nome = Nome do formulrio, para futuras referncias dentro da pgina HTML.
URL = Especifica o URL do servidor ao qual sera enviado o formulario.
GET | POST = metodos de transferencia de dados do browser para o servidor
Propriedades:
documet.GuestBook.action = "esaex@canudos.ufba.br"
elements - Vetor que armazena todos os objetos que so definidos dentro de um formulrio
(caixas de texto, botes, caixas de entrada de dados, checkboxes, botes de rdio). O nmero de
elementos deste vetor varia de 0 (zero) at o nmero de objetos dentro do formulrio -1.
Ex: document.NomeDoFormulario.elements[indice]
method - Seleciona um mtodo para acessar o URL de ao. Os mtodos so: get e post. Ambos
os mtodos transferem dados do browser para o servidor, com a seguinte diferena:
Esta propriedade pode ser alterada, porm s surtir efeito antes que o formulrio seja mostrado na
tela.
Ex: document.NomeDoFormulario.method = "post" ( ou "get")
Mtodos:
Ex: document.NomeDoFormulario.submit( )
Eventos:
onSubmit - Ocorre quando um boto do tipo submit recebe o clique do mouse, transferindo
os dados de um formulrio para o servidor especificado em action.
Os dados s so enviados se o evento receber um valor verdadeiro (true), valor este que
pode ser conseguido como resultado a chamada de uma funo que valida as informaes do formulrio.
Exemplo:
<HTML>
<HEAD>
<TITLE>Exemplo - Objeto Form</TITLE>
</HEAD>
<BODY>
<FORM action="mailto:esaex@canudos.ufba.br" method="POST">
<P><TT><B><H1>Exemplo:</H1></B></TT>
<P>Este exemplo demonstra a funcionalidade de um
formulário, para improvisar um "Guest Book"
<P>
Nome,Nascimento: <BR>
<INPUT TYPE="text" NAME="nomidade" VALUE=" " SIZE=70><BR>
Endereço: <BR>
<INPUT TYPE="text" NAME="endereco" VALUE=" " SIZE=70><BR>
E-Mail: <BR>
<INPUT TYPE="text" NAME="email" VALUE=" "
SIZE=70><BR>
5.5) CheckBox
Este objeto como o prprio nome sugere, exibe uma caixa de checagem igual s que encontramos no
Windows, o funcionamento tambm o mesmo: a condio de selecionada ou no, alternada quando
clicamos o mouse sobre o objeto, ou seja, se clicarmos sobre um objeto checkbox j marcado ele ser
automaticamente desmarcado, ao passo que se clicarmos em um objeto checkbox desmarcado ele ser
automaticamente marcado.
Forma geral:
<FORM>
<INPUT TYPE="checkbox" NAME="NomeDoObjeto" [CHECKED] VALUE="Label" onClick="Ao">
</FORM>
Onde:
Type - Nome do objeto;
Name - Nome dado pelo programador, para futuras referenciaes ao objeto;
CHECKED - Se especificado a CheckBox j vai aparecer selecionada;
Value - Define um rtulo para a CheckBox.
onClick - Define o que fazer quando d-se um clique na CheckBox, fazendo com que o
objeto CheckBox funcione como um objeto Button.
Mtodos:
click: este mtodo simula um clique do mouse no objeto CheckBox, ou seja, executa um
procedimento associado a uma CheckBox como se estivssemos clicado na CheckBox mas sem que o
usurio tenha realmente clicado.
Eventos associados:
onClick: Define o que fazer quando clicamos no objeto CheckBox
Exemplo:
<HTML>
<HEAD>
<TITLE>Exemplo CheckBox</TITLE>
<SCRIPT>
function exemplo(p1,p2,p3,p4){
alert('Veja os contedos das propriedades:
\nName='+p1+
'\nValue='+p2+
'\nChecked='+p3+
'\ndefaultChecked='+p4);
}
</SCRIPT>
5.6) Document
Este objeto armazena todas as caractersticas da pgina HTML, como por exemplo: cor das letras,
cor de fundo, figura que aparecer como papel de parede, etc. Sempre que inclumos alguma declarao no
<body> do documento, estamos alterando o objeto Document.
Forma geral:
<body [background="imagem"]
[bgcolor="#cordefundo"]
[fgcolor="#cordotexto"]
[link="#cordoslinks"]
[alink="#cordolinkativado"]
[vlink="#cordolinkvisitado"]
[onload="funo"]
[onunload="funcao"]>
Onde:
Imagem = figura no formato GIF, que servir como papel de parede para a Home Page;
#Cor... = nmero (hexadecimal), com seis dgitos, que corresponde a cor no formato RGB,
o "#" obrigatrio. Os dois primeiros dgitos correspondem a R (red), os dois do meio a G (green) e os dois
ltimos a B (blue). A combinao dos trs, forma a cor no formato RGB.
funo = Nome de uma funo pr-definida, que ser chamada quando o evento ocorrer.
anchors - Vetor que armazena as ncoras definidas em uma pgina HTML com o comando
<A NAME="ancora">. Esta propriedade somente para leitura, no pode ser alterada.
Ex: document.anchors[ndice]
fgColor - Determina a cor das letras em uma pgina HTML. Esta propriedade no altera o
que j est impresso na pgina HTML.
Ex: document.fgColor="#0000FF"
forms - Vetor que armazena as referncias aos formulrios existentes na pgina HTML.
Esta propriedade somente para leitura, no pode ser alterada.
Ex: document.forms[ndice]
linkColor - Determina a cor dos links que ainda no foram visitados pelo usurio.
Ex: document.linkColor = "#00FF00"
links - Vetor que armazena os links definidos em uma pgina HTML. Esta propriedade
somente para leitura, no pode ser alterada.
Ex: document.links[ndice]
title - Armazena uma string com o ttulo da pgina HTML atual. Esta propriedade somente
para leitura, no pode ser alterada.
Ex: document.title
Mtodos:
clear - limpa a tela da janela atual.
Ex: document.clear( )
open - Abre um documento e envia (mas no exibe) a sada dos mtodos write/writeln. Os
dados enviados so exibidos, quando encontrado o mtodo close.
Ex: document.open( )
close - Termina uma seqncia iniciada com o mtodo open, exibindo o que tinha sido
apenas enviado.
Ex: document.close( )
writeln - Imprime informaes na pgina HTML e passa para a prxima linha. Em meus
testes, esse mtodo no apresentou diferena com relao ao mtodo write.
Ex: document.writeln("Qualquer coisa" [,varivel] [,..., expresso])
Eventos:
onLoad - Ocorre assim que um browser carrega uma pgina HTML ou frame.
Ex: <BODY ... onLoad='alert("Oi!!!")'>
5.7) Date
Objeto muito til que retorna a data e hora do sistema no seguinte formato: Dia da semana, Nome do
ms, Dia do ms, Hora:Minuto:Segundo e Ano. Como todo objeto, podem ser criadas novas instncias para
este objeto, essa prtica possibilita a utilizao de quantos objetos data voc precisar.
Forma geral:
NovoObjeto = NEW date( )
Onde:
NovoObjeto = Objeto definido pelo usurio, para manipular datas.
Mtodos:
getMonth - Obtm o nmero do ms. Retornando um valor entre 0 e 11. ( janeiro=0)
Ex: Mes=NovoObjeto.getMonth( )
setMonth - Estabelece um novo valor para o ms. O valor deve estar entre 0..11
Ex: NovoObjeto.setMonth(NumeroDoMes)
setDate - Estabelece um novo valor para o dia do ms. Este valor deve estar entre 1..31
Ex: NovoObjeto.setDate(NumeroDoDia)
setMinutes - Estabelece um novo valor para os minutos. O valor deve estar entre 0..59
Ex: NovoObjeto.setMinutes(Minutos)
setSeconds - Estabelece um novo valor para os segundos. O valor deve estar entre 0..59
Ex: NovoObjeto.setSeconds(Segundos)
setYear - Estabelece um novo valor ao ano. O valor deve ser maior ou igual a 1900.
Ex: NovoObjeto.setYear(1997)
toLocaleString - Converte uma data para uma string seguindo o padro local.
Ex: NovoObjeto.toLocalString( )
Exemplo:
<HTML>
<HEAD>
<TITLE>Exemplo - Objeto Date</TITLE>
<SCRIPT>
<!--
var timerID = null;
var timerRunning = false;
function startclock ()
{
stopclock();
time();
}
function stopclock ()
{
if(timerRunning)
clearTimeout(timerID);
timerRunning = false;
}
function time ()
{
var now = new Date();
var yr = now.getYear();
var mName = now.getMonth() + 1;
var dName = now.getDay() + 1;
var dayNr = ((now.getDate()<10) ? "0" : "")+ now.getDate();
var ampm = (now.getHours() >= 12) ? " P.M." : " A.M."
var hours = now.getHours();
hours = ((hours > 12) ? hours - 12 : hours);
var minutes = ((now.getMinutes() < 10) ? ":0" : ":") + now.getMinutes();
var seconds = ((now.getSeconds() < 10) ? ":0" : ":") + now.getSeconds();
if(dName==1) Day = "Domingo";
if(dName==2) Day = "Segunda";
if(dName==3) Day = "Tera";
if(dName==4) Day = "Quarta";
if(dName==5) Day = "Quinta";
if(dName==6) Day = "Sexta";
if(mName==1) Month="Janeiro";
if(mName==2) Month="Fevereiro";
if(mName==3) Month="Maro";
if(mName==4) Month="Abril";
if(mName==5) Month="Maio";
if(mName==6) Month="Junho";
if(mName==7) Month="Julho";
if(mName==8) Month="Augosto";
if(mName==9) Month="Setembro";
if(mName==10) Month="Outubro";
if(mName==11) Month="Novembro";
if(mName==12) Month="Dezembro";
window.status=DayDateTime;
timerID = setTimeout("time()",1000);
timerRunning = true;
}
function clearStatus()
{
if(timerRunning)
clearTimeout(timerID);
timerRunning = false;
window.status=" ";
}
//-->
</SCRIPT>
5.8) History
Este objeto armazena todas as URL das pginas HTML por onde o usurio passou durante a sesso
atual do browser. uma cpia das informaes armazenadas na opo Go da barra de menu do Navigator.
Forma geral:
history.propriedade
history.mtodo
Propriedades:
lenght - Informa a quantidade de pginas visitadas.
Ex: history.lenght
Mtodos:
back - Retorna pgina anterior, de acordo com a relao de pginas do objeto history.
Equivale a clicar o boto back do browser.
Ex: history.back()
forward - Passa para a prxima pgina, de acordo com a relao de pginas do objeto
history. Equivale a clicar o boto forward do browser.
Ex: history.forward()
5.9) Window
Propriedades:
defaultStatus - Determina o contedo padro da barra de status do browser, quando nada
de importante estiver acontecendo.
Ex: widow.defaultStatus='Qualquer coisa'
status - Define uma mensagem que ir aparecer no rodap do browser, em substituio por
exemplo, a URL de um link, quando estivermos com o mouse sobre o link.
Ex: window.status="qualquer texto"
open - Abre uma nova sesso do browser, como se o usurio pressionasse <CTRL>+N
Ex: window.open("URL", "Nome" [,"caractersticas"])
Onde:
URL : endereo selecionado inicialmente quando da abertura da nova janela.
Nome : nome da nova janela, definido pelo programador;
Caractersticas - srie de opes de configurao da nova janela, se
especificados devem estar na mesma string, separados por vrgulas e sem
conter espaos:
toolbar=0 ou 1
location=0 ou 1
directories=0 ou 1
status=0 ou 1
menubar=0 ou 1
scrollbars=0 ou 1
resizable=0 ou 1
Ex:window.open("http://www.geocities.com/CapitolHill/6126/javainde.htm",
"NovaJanela","toolbar=1,location=1,directories=0,status=1,menubar=1,
scrollbars=1,resizable=0,width=320,height=240")
prompt - Monta uma caixa de entrada de dados, de forma simplificada comparando-se com
o objeto text.
Ex: prompt(label [,valor])
Eventos:
onLoad : Ocorre assim que a pgina HTML termina de ser carregada.
onUnload : Ocorre assim que o usurio sai da pgina atual.
5.10) Reset
Forma geral:
<INPUT TYPE="reset" NAME="nome" VALUE="label" onClick="ao">
onde:
reset : Tipo do objeto
nome : Nome definido pelo programador, para futuras referenciaes;
label : String que ser mostrada na face do boto.
ao : Define o que fazer (alm de sua funo normal) quando clicamos no boto reset.
Propriedades:
name - Armazena o nome que foi definido pelo usurio, no campo NAME, para o objeto
reset.
Ex: document.form[0].element[0].name
value - Armazena o texto que aparece na face do boto reset. Definido no campo VALUE.
Ex: document.form[0].element[0].value
Eventos:
onClick - Ocorre quando clicamos o mouse sobre o boto reset. Permite que associemos
outra funo ao boto reset.
Exemplo:
<HTML>
<HEAD>
<TITLE>Tutorial JavaScript - Exemplo: ResetButton</TITLE>
</HEAD>
<BODY>
<P><CENTER> <FONT SIZE="+3" FACE="Britannic Bold"
COLOR="#0000AF">J</FONT><FONT SIZE="+2" FACE="Britannic Bold"
COLOR="#0000AF">ava</FONT><FONT SIZE="+3" FACE="Britannic Bold"
COLOR="#0000AF">S</FONT><FONT SIZE="+2" FACE="Britannic Bold" COLOR="#0000AF">cript -
</FONT><FONT SIZE="+3" FACE="Britannic Bold" COLOR="#0000AF">G</FONT><FONT SIZE="+2"
FACE="Britannic Bold" COLOR="#0000AF">uia de </FONT><FONT SIZE="+3" FACE="Britannic Bold"
COLOR="#0000AF">R</FONT><FONT SIZE="+2" FACE="Britannic Bold"
COLOR="#0000AF">eferência</FONT><FONT SIZE="+2" FACE="Britannic Bold"><BR>
</FONT>
</CENTER>
<BR><BR>
<FORM action="" method="POST">
<P>Digite o seu estilo musical:
<P><INPUT TYPE="text" NAME="estilo" VALUE="" SIZE=30> <INPUT TYPE="RESET"
NAME="apaga" VALUE="Limpa" >
</FORM>
<BR> <BR> <BR>
<CENTER>
<FORM>
<INPUT TYPE="button" VALUE="Pgina Anterior" onClick="history.go(-1)">
</FORM>
HTML permite ligaes de uma regio de texto (ou imagem) um outro documento. Nestas pginas,
temos visto exemplos dessas ligaes: o browser destaca essas regies e imagens do texto, indicando que
so ligaes de hipertexto - tambm chamadas hypertext links ou hiperlinks ou simplesmente links.
Forma geral:
<A [ NAME="ancora" ]
HREF="URL" [TARGET="janela"] [onClick="ao"] [onMouseOver="ao"]>
Texto explicativo</A>
onde:
URL : o documento destino da ligao hipertexto;
ncora : o texto ou imagem que servir de ligao hipertexto .
janela : Nome da janela onde a pgina ser carregada, para o caso de estarmos
trabalhando com frames:
"_top" : Se estivermos trabalhando com frames, a pgina referenciada pelo link,
substituir a pgina que criou as frames, ou seja, a pgina atual, com todas as
frames, dar lugar a nova pgina.
"_self" : A nova pgina carregada na mesma janela do link.
"_blank" : Abre uma nova seo do browse para carregar a pgina.
ao :Cdigo de resposta ao evento.
Texto explicativo : Texto definido pelo usurio, que aparece na tela de forma
destacada.
Eventos:
onClick - Ocorre quando clicamos o mouse sobre o link.
Ex: <A HREF="URL qualquer" onClick="alert('voc teclou no link!')">Texto</A>
onMouseOver - Ocorre quando o mouse passa por cima do link, sem ser clicado.
Ex: <A HREF="URL qualquer" onMouseOver="self.status='Este texto aparecer na barra de
status quando o mouse estiver posicionado sobre o link'"> Texto</A>
Ex: JavaInde.htm
<HTML>
...
<A HREF = "parte1.htm#2">Diferena entre Java e JavaScript</A>
...
</HTML>
Ex: parte1.htm
<HTML>
...
<A NAME="1"></A>O que JavaScript
JavaScript ...
<A NAME="2"></A>Diferena entre Java e JavaScript
A diferena ...
...
</HTML>
Existem vrias palavras que so reservadas para o JavaScript as quais so listadas abaixo. Essas
palavras no podem ser utilizadas para identificar variveis ou funes.
abstract float public
boolean for return
break function short
byte goto static
case if super
cath implements switch
char import sinchronized
class in this
const instanceof throw
continue int throws
default interface transient
do long true
double native try
else new var
extends null void
false package while
final private with
finally protected
Ao invs de especificar cdigos hexadecimais para utilizar cor em documentos HTML, voc pode
simplesmente utilizar um literal, que especifica o nome da cor para obter o mesmo resultado. A seguir sero
mostrados os vrios literais que voc pode utilizar na especificao de cores:
Exemplo de utilizao:
Definindo Background <BODY BGCOLOR="literal">
Definindo a cor do texto <BODY TEXT="literal">
Definindo a cor de trechos de textos <FONT COLOR="literal"...</FONT>
Links, Followed Links, etc. <BODY ALINK="literal"> etc.