TITOCOrox* 0 Postado 4 de Maio 2006 Compartilhar Postado 4 de Maio 2006 O Java ÃÆ’© uma linguagem de programaÃÆ’ÂÂ§ÃÆ’£o multiplataforma, com uma sintaxe atÃÆ’© certo ponto parecida com o C++, porÃÆ’©m com bibliotecas diferentes. Os programas em Java podem ser executados em qualquer sistema operacional, desde que o interpretador esteja instalado. A JVM ÃÆ’© um programa que converte o cÃÆ’³digo Java em comandos que o sistema operacional possa executar. Existem mÃÆ’¡quinas virtuais para vÃÆ’¡rios sistemas operacionais: o problema ÃÆ’© que, devido ao processamento executado pela mÃÆ’¡quina virtual, o programa torna-se mais pesado do que seria caso escrito diretamente para a plataforma. Um exemplo de programa desenvolvido desta forma ÃÆ’© o Mercury (um cliente MSN com versÃÆ’µes para Linux e Windows, um dos primeiros a oferecer suporte a webcam e por isso bastante famoso). Embora o cÃÆ’³digo fonte do programa seja relativamente simples e bem escrito, ele ÃÆ’© bem mais pesado que outros programas similares, por causa da mÃÆ’¡quina virtual. Explicando de forma mais elaborada, linguagens de programaÃÆ’ÂÂ§ÃÆ’£o "tradicionais", como o C e o C++, utilizam um compilador diferente para cada plataforma ou sistema operacional em que o programa irÃÆ’¡ rodar. O cÃÆ’³digo fonte em si pode ser escrito de forma a ser facilmente portÃÆ’¡vel, ou seja, rodar em diferentes versÃÆ’µes do Unix ou em vÃÆ’¡rias famÃÆ’ÂÂlias de processadores diferentes sem muitas alteraÃÆ’ÂÂ§ÃÆ’µes, mas ainda assim serÃÆ’¡ necessÃÆ’¡rio recompilar o cÃÆ’³digo fonte, gerando um binÃÆ’¡rio diferente para cada caso. Embora o trabalho inicial seja maior, a vantagem desta abordagem ÃÆ’© que o desempenho ÃÆ’© o melhor possÃÆ’ÂÂvel, jÃÆ’¡ que sempre teremos um programa binÃÆ’¡rio otimizado para a plataforma. O Java utiliza um conceito diferente. Ao invÃÆ’©s de gerar um binÃÆ’¡rio diferente para cada plataforma, ÃÆ’© gerado um binÃÆ’¡rio que pode ser executado em qualquer plataforma, dentro de uma mÃÆ’¡quina virtual. Este binÃÆ’¡rio "universal" ÃÆ’© chamado de bytecode. A idÃÆ’©ia ÃÆ’© criar aplicativos que possam ser escritos uma vez e a partir daÃÆ’ serem executados em qualquer plataforma, reduzindo os custos de desenvolvimento. Apenas o software da mÃÆ’¡quina virtual ÃÆ’© que precisa ser reescrito para cada plataforma, mas isso ÃÆ’© problema dos desenvolvedores da linguagem, nÃÆ’£o do programador. Existe ainda a opÃÆ’ÂÂ§ÃÆ’£o de abrir mÃÆ’£o da flexibilidade do bytecode em troca de um maior desempenho, passando a compilar os programas com otimizaÃÆ’ÂÂ§ÃÆ’µes para uma determinada plataforma. Isso ÃÆ’© muito ÃÆ’ºtil quando o programa serÃÆ’¡ executado apenas dentro de computadores de uma certa plataforma, como PCs rodando Linux, por exemplo. No caso do Java, a mÃÆ’¡quina virtual que executa os programas ÃÆ’© chamada de Java Virtual Machine. Muitas pÃÆ’¡ginas web utilizam applets Java, por isso a maioria das pessoas acaba instalando o suporte a Java. Hoje em dia, alÃÆ’©m do Java da Sun, temos versÃÆ’µes alternativas, como o Blackdown e o Kofee, que possuem conjuntos de recursos variados, mas sÃÆ’£o a princÃÆ’ÂÂpio compatÃÆ’ÂÂveis com o cÃÆ’³digo gerado para o Java da Sun. Embora tenha ganhado relevÃÆ’¢ncia com o Java, este conceito nÃÆ’£o ÃÆ’© exatamente novo. Linguagens mais antigas como o LISP e o Prolog jÃÆ’¡ utilizam bytecode e mÃÆ’¡quinas virtuais. BY - TITOCOrox* ᅠᅠMural de Coleçõesᅠᅠ Clique aqui e adquira suas medalhas Link para o comentário Compartilhar em outros sites Mais opções de compartilhamento...
rap_ 1 Postado 7 de Maio 2006 Compartilhar Postado 7 de Maio 2006 Re.: Coceito de Java manu gostei geral o q precisamus aki no forum e de apensa ensinamentos para q as pessoas possam apenas descobrir as coisas sozinhas mais c vc entregar tudo de mÃÆ’£o beijada pra elas, elas nunk vaum crescer mentalmente e vaum continuar sendo "lammers" mais vc tipow ajuda a entender o q he java e tipow a partir dai pod se comeÃÆ’§ar a trabalhar com ele se interessar estudar ao inves de fikar comprando revistas hackers e sites e talz!! aff.. flw man seu post tbm ta nota 1000 me add no msn aew [email protected] ᅠᅠMural de Coleçõesᅠᅠ Clique aqui e adquira suas medalhas Link para o comentário Compartilhar em outros sites Mais opções de compartilhamento...
CrasH 0 Postado 14 de Maio 2006 Compartilhar Postado 14 de Maio 2006 Re.: Coceito de Java Bah...Mal ae confundi mesmo... Mais jÃÆ’¡ que ta aqui num vou apagar quem quiser ta ae JAVASCRIPT. INTRODUÃÆ’ââ‚¬Â¡ÃÆ’Æ’O JavaScript ÃÆ’© uma linguagem que permite injetar lÃÆ’³gica em pÃÆ’¡ginas escritas em HTML (HiperText Mark-up Language). As pÃÆ’¡ginas HTML podem ser escritas utilizando-se editores de texto, como o NotePad, Write, etc. PorÃÆ’©m, existem editores prÃÆ’³prios para gerar HTML, tais como HotDog e (mais recomendado) Microsoft FrontPage. Os parÃÆ’¡grafos de lÃÆ’³gica do javaScript podem estar "soltos" ou atrelados a ocorrÃÆ’ªncia de eventos. Os parÃÆ’¡grafos soltos sÃÆ’£o executados na sequÃÆ’ªncia em que aparecem na pÃÆ’¡gina (documento) e os atrelados a eventos sÃÆ’£o executados apenas quando o evento ocorre. Para inserir parÃÆ’¡grafos de programaÃÆ’ÂÂ§ÃÆ’£o dentro do HTML ÃÆ’© necessÃÆ’¡rio identificar o inÃÆ’ÂÂcio e o fim do set de JavaScript, da seguinte forma: <SCRIPT> Set de instruÃÆ’ÂÂ§ÃÆ’µes </SCRIPT> Este procedimento pode ser adotado em qualquer local da pÃÆ’¡gina. Entretanto, para melhor visualizaÃÆ’ÂÂ§ÃÆ’£o e facilidade de manutenÃÆ’ÂÂ§ÃÆ’£o, recomenda-se que toda a lÃÆ’³gica seja escrita no inÃÆ’ÂÂcio do documento, atravÃÆ’©s da criaÃÆ’ÂÂ§ÃÆ’£o de funÃÆ’ÂÂ§ÃÆ’µes a serem invocadas quando se fizer necessÃÆ’¡rio (normalmente atreladas a eventos). Se a lÃÆ’³gica ÃÆ’© escrita a partir de um determinado evento, nÃÆ’£o ÃÆ’© necessÃÆ’¡rio o uso dos comandos <SCRIPT> e </SCRIPT>. Os comandos JavaScript sÃÆ’£o sensÃÆ’ÂÂveis ao tipo de letra (maiÃÆ’ºsculas e minÃÆ’ºsculas) em sua sintaxe. Portanto, ÃÆ’© necessÃÆ’¡rio que seja obedecida a forma de escrever os comandos, de acordo com a forma apresentada ao longo deste manual. Caso seja cometido algum erro de sintaxe quando da escrita de um comando, o JavaScript interpretarÃÆ’¡, o que seria um comando, como sendo o nome de uma variÃÆ’¡vel. OPERADORES LÃÆ’“GICOS SÃÆ’£o operadores a serem utilizados em comandos condicionais, tais como: IF , FOR e WHILE. Os comandos condicionais serÃÆ’£o vistos mais a frente. = = Igual != Diferente > Maior >= Maior ou Igual < Menor <= Menor ou Igual && E OPERADORES MATEMÃÆ’ÂÂTICOS SÃÆ’£o operadores a serem utilizados em cÃÆ’¡lculos, referÃÆ’ªncias de indexadores e manuseio de strings. Ao longo do manual estes operadores serÃÆ’£o largamente utilizados, dando, assim, uma noÃÆ’ÂÂ§ÃÆ’£o mais precisa do seu potencial. + adiÃÆ’ÂÂ§ÃÆ’£o de valor e concatenaÃÆ’ÂÂ§ÃÆ’£o de strings - subtraÃÆ’ÂÂ§ÃÆ’£o de valores * multiplicaÃÆ’ÂÂ§ÃÆ’£o de valores / divisÃÆ’£o de valores % obtem o resto de uma divisÃÆ’£o: Ex: 150 % 13 retornarÃÆ’¡ 7 7 % 3 retornarÃÆ’¡ 1 += concatena /adiciona ao string/valor jÃÆ’¡ existente. Ou seja: x += y ÃÆ’© o mesmo que x = x + y da mesma forma podem ser utilizados: -= , *= , /= ou %= Um contador pode ser simplificado utilizando-se : X++ ou X-- o que equivale as expressÃÆ’µes: X = X + 1 ou X = X - 1 respectivamente. Para inverter sinal: X = -X negativo para positivo ou positivo para negativo. CONTROLES ESPECIAIS b - backspace f - form feed n - new line caracters r - carriage return t - tab characters // - Linha de comentÃÆ’¡rio /*....*/ - Delimitadores para inserir um texto com mais de uma linha como comentÃÆ’¡rio. Os delimitadores naturais para uma string sÃÆ’£o " ou ' . Caso seja necessÃÆ’¡rio a utilizaÃÆ’ÂÂ§ÃÆ’£o destes caracteres como parte da string, utilize precedendo " ou '. Ex. alert ("Cuidado com o uso de " ou ' em uma string") COMANDOS CONDICIONAIS SÃÆ’£o comandos que condicionam a execuÃÆ’ÂÂ§ÃÆ’£o de uma certa tarefa ÃÆ’ veracidade ou nÃÆ’£o de uma determinada condiÃÆ’ÂÂ§ÃÆ’£o, ou enquanto determinada condiÃÆ’ÂÂ§ÃÆ’£o for verdadeira. SÃÆ’£o eles: Comando IF if (condiÃÆ’ÂÂ§ÃÆ’£o) { aÃÆ’ÂÂ§ÃÆ’£o para condiÃÆ’ÂÂ§ÃÆ’£o satisfeita } [ else { aÃÆ’ÂÂ§ÃÆ’£o para condiÃÆ’ÂÂ§ÃÆ’£o nÃÆ’£o satisfeita } ] Ex. if (Idade < 18 ) {Categoria = "Menor" } else {Categoria = "Maior"} Comando FOR for ( [inicializaÃÆ’ÂÂ§ÃÆ’£o/criaÃÆ’ÂÂ§ÃÆ’£o de variÃÆ’¡vel de controle ;] [condiÃÆ’ÂÂ§ÃÆ’£o ;] [incremento da variÃÆ’¡vel de controle] ) { aÃÆ’ÂÂ§ÃÆ’£o } Ex. for (x = 0 ; x <= 10 ; x++) {alert ("X igual a " + x) } ComandoWHILE Executa uma aÃÆ’ÂÂ§ÃÆ’£o enquanto determinada condiÃÆ’ÂÂ§ÃÆ’£o for verdadeira. while (condiÃÆ’ÂÂ§ÃÆ’£o) { aÃÆ’ÂÂ§ÃÆ’£o } Ex. var contador = 10 while (contador > 1) { contador-- } Move condicional receptor = ( (condiÃÆ’ÂÂ§ÃÆ’£o) ? verdadeiro : falso) Ex. NomeSexo = ((VarSexo == "M") ? "Masculino" : "Feminino") OBS: Nos comandos FOR e WHILE a diretiva "break" pode ser utilizada para interromper a condiÃÆ’ÂÂ§ÃÆ’£o principal e sair do loop. Da mesma forma, a diretiva "continue" interrompe uma aÃÆ’ÂÂ§ÃÆ’£o (se determinada condiÃÆ’ÂÂ§ÃÆ’£o ocorrer) mas volta para o loop. Diretivas/condiÃÆ’ÂÂ§ÃÆ’µes entre [ ] significam que sÃÆ’£o opcionais. EVENTOS SÃÆ’£o fatos que ocorrem durante a execuÃÆ’ÂÂ§ÃÆ’£o do sistema, a partir dos quais o programador pode definir aÃÆ’ÂÂ§ÃÆ’µes a serem realizadas pelo programa. Abaixo apresentamos a lista dos eventos possÃÆ’ÂÂveis, indicando os momentos em que os mesmos podem ocorrer, bem como, os objetos passÃÆ’ÂÂveis de sua ocorrÃÆ’ªncia. onload - Ocorre na carga do documento. Ou seja, sÃÆ’³ ocorre no BODY do documento. onunload - Ocorre na descarga (saÃÆ’ÂÂda) do documento. TambÃÆ’©m sÃÆ’³ ocorre no BODY. onchange - Ocorre quando o objeto perde o focus e houve mudanÃÆ’§a de conteÃÆ’ºdo. vÃÆ’¡lido para os objetos Text, Select e Textarea. onblur - Ocorre quando o objeto perde o focus, independente de ter havido mudanÃÆ’§a. vÃÆ’¡lido para os objetos Text, Select e Textarea. onfocus - Ocorre quando o objeto recebe o focus. vÃÆ’¡lido para os objetos Text, Select e Textarea. onclick - Ocorre quando o objeto recebe um Click do Mouse. vÃÆ’¡lido para os objetos Buton, Checkbox, Radio, Link, Reset e Submit. onmouseover - Ocorre quando o ponteiro do mouse passa por sobre o objeto. vÃÆ’¡lido apenas para Link. onselect - Ocorre quando o objeto ÃÆ’© selecionado. vÃÆ’¡lido para os objetos Text e Textarea. onsubmit - Ocorre quando um botÃÆ’£o tipo Submit recebe um click do mouse. vÃÆ’¡lido apenas para o Form. CRIANDO VARIÃÆ’ÂÂVEIS A variÃÆ’¡vel ÃÆ’© criada automaticamente, pela simples associaÃÆ’ÂÂ§ÃÆ’£o de valores a mesma. Ex. NovaVariavel = "Jose" Foi criada a variÃÆ’¡vel de nome NovaVariavel que, passou a conter a string Jose. As variÃÆ’¡veis podem ser Locais ou Globais. As variÃÆ’¡veis que sÃÆ’£o criadas dentro de uma funÃÆ’ÂÂ§ÃÆ’£o sÃÆ’£o Locais e referenciÃÆ’¡veis apenas dentro da funÃÆ’ÂÂ§ÃÆ’£o. As variÃÆ’¡veis criadas fora de funÃÆ’ÂÂ§ÃÆ’µes sÃÆ’£o Globais, podendo serem referenciadas em qualquer parte do documento. Desta forma, variÃÆ’¡veis que precisam ser referenciadas por vÃÆ’¡rias funÃÆ’ÂÂ§ÃÆ’µes ou em outra parte do documento, precisam ser definidas como globais. Embora nÃÆ’£o seja recomendÃÆ’¡vel, em uma funÃÆ’ÂÂ§ÃÆ’£o, pode ser definida uma variÃÆ’¡vel local com o mesmo nome de uma variÃÆ’¡vel global. Para isso utiliza-se o mÃÆ’©todo de definiÃÆ’ÂÂ§ÃÆ’£o var. Ex. VariÃÆ’¡vel Global : MinhaVariavel = "" VariÃÆ’¡vel Local : var MinhaVariavel = "" ESCREVENDO NO DOCUMENTO O JavaScript permite que o programador escreva linhas dentro de uma pÃÆ’¡gina (documento), atravÃÆ’©s do mÃÆ’©todo write. As linhas escritas desta forma, podem conter textos, expressÃÆ’µes JavaScript e comandos Html. As linhas escritas atravÃÆ’©s deste mÃÆ’©todo aparecerÃÆ’£o no ponto da tela onde o comando for inserido. Ex: <script> valor = 30 document.write ("Minha primeira linha") document.write ("Nesta linha aparecerÃÆ’¡ o resultado de : " + (10 * 10 + valor)) </script> A idÃÆ’©ia do exemplo acima ÃÆ’© escrever duas linhas. Entretanto o mÃÆ’©todo write nÃÆ’£o insere mudanÃÆ’§a de linha, o que provocarÃÆ’¡ o aparecimento de apenas uma linha com os dois textos emendados. Para evitar este tipo de ocorrÃÆ’ªncia, existe o mÃÆ’©todo writeln que escreve uma linha e espaceja para a seguinte. Entretanto, em nossos testes, este comando nÃÆ’£o surtiu efeito,obtendo-se o mesmo resultado do mÃÆ’©todo write. A soluÃÆ’ÂÂ§ÃÆ’£o encontrada para esta situaÃÆ’ÂÂ§ÃÆ’£o foi a utilizaÃÆ’ÂÂ§ÃÆ’£o do comando de mudanÃÆ’§a de parÃÆ’¡grafo da linguagem Html. Ex: <script> valor = 30 document.write (" Minha primeira linha</p>") document.write (" Nesta linha aparecerÃÆ’¡ o resultado de : " + (10 * 10 + valor) + "</p>") </script> Isto resolve a questÃÆ’£o da mudanÃÆ’§a de linha, porÃÆ’©m, vai gerar uma linha em branco, entre cada linha, por se tratar de mudanÃÆ’§a de parÃÆ’¡grafo. Caso nÃÆ’£o seja desejado a existÃÆ’ªncia da linha em branco, a alternativa ÃÆ’© utilizar o comando Html que apenas muda de linha. Ex: <script> valor = 30 document.write (" Minha primeira linha") document.write (" Nesta linha aparecerÃÆ’¡ o resultado de : " + (10 * 10 + valor) ) </script> MENSAGENS Existem trÃÆ’ªs formas de comunicaÃÆ’ÂÂ§ÃÆ’£o com o usuÃÆ’¡rio atravÃÆ’©s de mensagens. Apenas ObservaÃÆ’ÂÂ§ÃÆ’£o. alert ( mensagem ) Ex. alert ("Certifique-se de que as informaÃÆ’ÂÂ§ÃÆ’µes estÃÆ’£o corretas") Mensagem que retorna confirmaÃÆ’ÂÂ§ÃÆ’£o de OK ou CANCELAR confirm (mensagem) Ex. if (confirm ("Algo estÃÆ’¡ errado...devo continuar??")) { alert("Continuando") } else { alert("Parando") } Recebe mensagem via caixa de texto Input Receptor = prompt ("Minha mensagem", "Meu texto") Onde: Receptor ÃÆ’© o campo que vai receber a informaÃÆ’ÂÂ§ÃÆ’£o digitada pelo usuÃÆ’¡rio Minha mensagem ÃÆ’© a mensagem que vai aparecer como Label da caixa de input Meu texto ÃÆ’© um texto, opcional, que aparecerÃÆ’¡ na linha de digitaÃÆ’ÂÂ§ÃÆ’£o do usuÃÆ’¡rio Ex. Entrada = prompt("Informe uma expressÃÆ’£o matemÃÆ’¡tica", "") Resultado = eval(Entrada) document.write("O resultado ÃÆ’© = " + Resultado) CRIANDO FUNÃÆ’ââ‚¬Â¡ÃÆ’•ES Uma funÃÆ’ÂÂ§ÃÆ’£o ÃÆ’© um set de instruÃÆ’ÂÂ§ÃÆ’µes, que sÃÆ’³ devem ser executadas quando a funÃÆ’ÂÂ§ÃÆ’£o for acionada. A sintaxe geral ÃÆ’© a seguinte: function NomeFunÃÆ’ÂÂ§ÃÆ’£o (ParÃÆ’¢metros) { AÃÆ’ÂÂ§ÃÆ’£o } Suponha uma funÃÆ’ÂÂ§ÃÆ’£o que tenha como objetivo informar se uma pessoa ÃÆ’© maior ou menor de idade, recebendo como parÃÆ’¢metro a sua idade. function Idade (Anos) { if (Anos > 17) { alert ("Maior de Idade") } else { alert ("menor de Idade") } } Para acionar esta funÃÆ’ÂÂ§ÃÆ’£o, suponha uma caixa de texto, em um formulÃÆ’¡rio, na qual seja informada a idade e, a cada informaÃÆ’ÂÂ§ÃÆ’£o, a funÃÆ’ÂÂ§ÃÆ’£o seja acionada. <form> <input type=text size=2 maxlength=2 name="Tempo" onchange="Idade(Tempo.value)"> </form> Observe-se que o parÃÆ’¢metro passado (quando ocorre o evento "onchange") foi o conteÃÆ’ºdo da caixa de texto "Tempo" (propriedade "value") e que, na funÃÆ’ÂÂ§ÃÆ’£o, chamamos de "Anos". Ou seja, nÃÆ’£o existe co-relaÃÆ’ÂÂ§ÃÆ’£o entre o nome da variÃÆ’¡vel passada e a variÃÆ’¡vel de recepÃÆ’ÂÂ§ÃÆ’£o na funÃÆ’ÂÂ§ÃÆ’£o. Apenas o conteÃÆ’ºdo ÃÆ’© passado. FUNÃÆ’ââ‚¬Â¡ÃÆ’•ES INTRÃÆ’ÂÂNSECAS SÃÆ’£o funÃÆ’ÂÂ§ÃÆ’µes embutidas na prÃÆ’³pria linguagem. A sintaxe geral ÃÆ’© a seguinte: Result = funÃÆ’ÂÂ§ÃÆ’£o (informaÃÆ’ÂÂ§ÃÆ’£o a ser processada) - eval = Calcula o conteÃÆ’ºdo da string - parseInt - Transforma string em inteiro - parseFloat - Transforma string em nÃÆ’ºmero com ponto flutuante - date() - Retorna a data e a hora (veja o capÃÆ’ÂÂtulo manipulando datas) ex1: Result = eval ( " (10 * 20) + 2 - 8") ex2: Result = eval (string) No primeiro exemplo Result seria igual a 194. No segundo, depende do conteÃÆ’ºdo da string, que tambÃÆ’©m pode ser o conteÃÆ’ºdo (value) de uma caixa de texto. - FunÃÆ’ÂÂ§ÃÆ’µes tipicamente MatemÃÆ’¡ticas: Math.abs(nÃÆ’ºmero) - retorna o valor absoluto do nÃÆ’ºmero (ponto flutuante) Math.ceil(nÃÆ’ºmero) - retorna o prÃÆ’³ximo valor inteiro maior que o nÃÆ’ºmero Math.floor(nÃÆ’ºmero) - retorna o prÃÆ’³ximo valor inteiro menor que o nÃÆ’ºmero Math.round(nÃÆ’ºmero) - retorna o valor inteiro, arredondado, do nÃÆ’ºmero Math.pow(base, expoente) - retorna o cÃÆ’¡lculo do exponencial Math.max(nÃÆ’ºmero1, nÃÆ’ºmero2) - retorna o maior nÃÆ’ºmero dos dois fornecidos Math.min(nÃÆ’ºmero1, nÃÆ’ºmero2) - retorna o menor nÃÆ’ºmero dos dois fornecidos Math.sqrt(nÃÆ’ºmero) - retorna a raiz quadrada do nÃÆ’ºmero Math.SQRT2 - retorna a raiz quadrada de 2 (aproximadamente 1.414) Math.SQRT_2 - retorna a raiz quadrada de 1/2 (aproximadamente 0.707) Math.sin(nÃÆ’ºmero) - retorna o seno de um nÃÆ’ºmero (anglo em radianos) Math.asin(nÃÆ’ºmero) - retorna o arco seno de um nÃÆ’ºmero (em radianos) Math.cos(nÃÆ’ºmero) - retorna o cosseno de um nÃÆ’ºmero (anglo em radianos) Math.acos(nÃÆ’ºmero) - retorna o arco cosseno de um nÃÆ’ºmero (em radianos) Math.tan(nÃÆ’ºmero) - retorna a tangente de um nÃÆ’ºmero (anglo em radianos) Math.atan(nÃÆ’ºmero) - retorna o arco tangente de um nÃÆ’ºmero (em radianos) Math.pi retorna o valor de PI (aproximadamente 3.14159) Math.log(nÃÆ’ºmero) - retorna o logarÃÆ’ÂÂtmo de um nÃÆ’ºmero Math.E - retorna a base dos logarÃÆ’ÂÂtmos naturais (aproximadamente 2.718) Math.LN2 - retorna o valor do logarÃÆ’ÂÂtmo de 2 (aproximadamente 0.693) Math.LOG2E - retorna a base do logarÃÆ’ÂÂtmo de 2 (aproximadamente 1.442) Math.LN10 retorna o valor do logarÃÆ’ÂÂtmo de 10 (aproximadamente 2.302) Math.LOG10E - retorna a base do logarÃÆ’ÂÂtmo de 10 (aproximadamente 0.434) ObservaÃÆ’ÂÂ§ÃÆ’£o: Em todas as funÃÆ’ÂÂ§ÃÆ’µes, quando apresentamos a expressÃÆ’£o "(nÃÆ’ºmero)", na verdade queremos nos referir a um argumento que serÃÆ’¡ processado pela funÃÆ’ÂÂ§ÃÆ’£o e que poderÃÆ’¡ ser: um nÃÆ’ºmero, uma variÃÆ’¡vel ou o conteÃÆ’ºdo de um objeto (propriedade value). CRIANDO NOVAS INSTÃÆ’‚NCIAS AtravÃÆ’©s do operador new podem ser criadas novas instÃÆ’¢ncias a objetos jÃÆ’¡ existentes, mudando o seu conteÃÆ’ºdo, porÃÆ’©m, mantendo suas propriedades. A sintaxe geral ÃÆ’© a seguinte: NovoObjeto = new ObjetoExistente (parÃÆ’¢metros) Ex1. MinhaData = new Date () MinhaData passou a ser um objeto tipo Date, com o mesmo conteÃÆ’ºdo existente em Date (data e hora atual) Ex2: MinhaData = new Date(1996, 05, 27) MinhaData passou a ser um objeto tipo Date, porÃÆ’©m, com o conteÃÆ’ºdo de uma nova data. Ex3: Suponha a existÃÆ’ªncia do seguinte objeto chamado Empresas function Empresas (Emp, Nfunc, Prod) { this.Emp = Emp this.Nfunc = Nfunc this.Prod = Prod } Podemos criar novas instÃÆ’¢ncias, usando a mesma estrutura, da seguinte forma: Elogica = new Empresas("Elogica", "120", "ServiÃÆ’§os") Pitaco = new Empresas("Pitaco", "35", "Software") Corisco = new Empresas("Corisco", "42", "Conectividade") Assim, a variÃÆ’¡vel Elogica.Nfunc terÃÆ’¡ o seu conteÃÆ’ºdo igual a 120 MANIPULANDO ARRAYS O JavaScript nÃÆ’£o tem um tipo de dado ou objeto para manipular arrays. Por isso, para trabalhar com arrays ÃÆ’© necessÃÆ’¡rio a criaÃÆ’ÂÂ§ÃÆ’£o de um objeto com a propriedade de criaÃÆ’ÂÂ§ÃÆ’£o de um array. No exemplo abaixo, criaremos um objeto tipo array de tamanho variÃÆ’¡vel e com a funÃÆ’ÂÂ§ÃÆ’£o de "limpar" o conteÃÆ’ºdo das variÃÆ’¡veis cada vez que uma nova instÃÆ’¢ncia seja criada a partir dele. function CriaArray (n) { this.length = n for (var i = 1 ; i <= n ; i++) { this = "" } } Agora podemos criar novas instÃÆ’¢ncias do objeto "CriaArray" e alimentÃÆ’¡-los com os dados necessÃÆ’¡rios. NomeDia = new CriaArray(7) NomeDia[0] = "Domingo" NomeDia[1] = "Segunda" NomeDia [2] = "TerÃÆ’§a" NomeDia[3] = "Quarta" NomeDia[4] = "Quinta" NomeDia[5] = "Sexta" NomeDia[6] = "SÃÆ’¡bado" Atividade = new CriaArray(5) Atividade[0] = "Analista" Atividade[1] = "Programador" Atividade[2] = "Operador" Atividade[3] = "Conferente" Atividade[4] = "Digitador" Agora poderemos obter os dados diretamente dos arrays. DiaSemana = NomeDia[4] OcupaÃÆ’ÂÂ§ÃÆ’£o = Atividade[1] DiaSemana passaria a conter Quinta e OcupaÃÆ’ÂÂ§ÃÆ’£o conteria Programador. Outra forma de se trabalhar com arrays ÃÆ’© criar novas instÃÆ’¢ncias dentro do prÃÆ’³prio objeto do array, o que proporciona o mesmo efeito de se trabalhar com matriz. Isso pode ser feito da seguinte forma: function Empresas (Emp, Nfunc, Prod) { this.Emp = Emp this.Nfunc = Nfunc this.Prod = Prod } TabEmp = new Empresas(3) TabEmp[1] = new Empresas("Elogica", "120", "ServiÃÆ’§os") TabEmp[2] = new Empresas("Pitaco", "35", "Software") TabEmp[3] = new Empresas("Corisco", "42", "Conectividade") Assim, poderemos obter a atividade da empresa nÃÆ’ºmero 3, cuja resposta seria Conectividade, da seguinte forma: Atividade = TabEmp[3].Prod Obs: ÃÆ’‰ importante lembrar que, embora os exemplos estejam com indexadores fixos, os indexadores podem ser referÃÆ’ªncias ao conteÃÆ’ºdo de variÃÆ’¡veis. MANIPULANDO STRING's O JavaScript ÃÆ’© bastante poderoso no manuseio de String´s, fornecendo ao programador uma total flexibilidade em seu manuseio. Abaixo apresentamos os mÃÆ’©todos disponÃÆ’ÂÂveis para manuseio de string´s. string.length - retorna o tamanho da string (quantidade de bytes) string.charAt(posiÃÆ’ÂÂ§ÃÆ’£o) - retorna o caracter da posiÃÆ’ÂÂ§ÃÆ’£o especificada (inicia em 0) string.indexOf("string") - retorna o nÃÆ’ºmero da posiÃÆ’ÂÂ§ÃÆ’£o onde comeÃÆ’§a a primeira "string" string.lastindexOf("string") - retorna o nÃÆ’ºmero da posiÃÆ’ÂÂ§ÃÆ’£o onde comeÃÆ’§a a ÃÆ’ºltima "string" string.substring(index1, index2) - retorna o conteÃÆ’ºdo da string que corresponde ao intervalo especificado. ComeÃÆ’§ando no caracter posicionado em index1 e terminando no caracter imediatamente anterior ao valor especificado em index2. Ex. Todo = "Elogica" Parte = Todo.substring(1, 4) (A variÃÆ’¡vel Parte receberÃÆ’¡ a palavra log) string.toUpperCase() - Transforma o conteÃÆ’ºdo da string para maiÃÆ’ºsculo (Caixa Alta) string.toLowerCase() - Transforma o conteÃÆ’ºdo da string para minÃÆ’ºsculo (Caixa Baixa) escape ("string") - retorna o valor ASCII da string (vem precedido de %) unscape("string") - retorna o caracter a partir de um valor ASCII (precedido de %) MANIPULANDO DATAS Existe apenas uma funÃÆ’ÂÂ§ÃÆ’£o para que se possa obter a data e a hora. ÃÆ’‰ a funÃÆ’ÂÂ§ÃÆ’£o Date(). Esta funÃÆ’ÂÂ§ÃÆ’£o devolve data e hora no formato:Dia da semana, Nome do mÃÆ’ªs, Dia do mÃÆ’ªs, Hora:Minuto:Segundo e Ano Ex. Fri May 24 16:58:02 1996 Para se obter os dados separadamente, existem os seguintes mÃÆ’©todos: getDate() - ObtÃÆ’©m o dia do mÃÆ’ªs (numÃÆ’©rico de 1 a 31) getDay() - ObtÃÆ’©m o dia da semana (0 a 6) getMonth() - ObtÃÆ’©m o mÃÆ’ªs (numÃÆ’©rico de 0 a 11) getYear() - ObtÃÆ’©m o ano getHours() - ObtÃÆ’©m a hora (numÃÆ’©rico de 0 a 23) getMinutes() - ObtÃÆ’©m os minutos (numÃÆ’©rico de 0 a 59) getSeconds() - ObtÃÆ’©m os segundos (numÃÆ’©rico de 0 a 59) No exemplo abaixo obteremos o dia da semana. Para tal, utilizaremos a variÃÆ’¡vel DataToda para armazenar data/hora e a variÃÆ’¡vel DiaHoje para armazenar o nÃÆ’ºmero do dia da semana. DataToda = new Date() DiaHoje = DataToda.getDay() Para obter o dia da semana alfa, teremos que construir uma tabela com os dias da semana e utilizar a variÃÆ’¡vel DiaHoje como indexador. function CriaTab (n) { this.length = n for (var x = 1 ; x<= n ; x++) { this[x] = "" } } NomeDia = new CriaTab(7) NomeDia[0] = "Domingo" NomeDia[1] = "Segunda" NomeDia [2] = "TerÃÆ’§a" NomeDia[3] = "Quarta" NomeDia[4] = "Quinta" NomeDia[5] = "Sexta" NomeDia[6] = "SÃÆ’¡bado" DiaSemana = NomeDia[DiaHoje] Para criar uma variÃÆ’¡vel tipo Date com o conteÃÆ’ºdo informado pela aplicaÃÆ’ÂÂ§ÃÆ’£o, existe o mÃÆ’©todo set. Assim, temos os seguintes mÃÆ’©todos: setDate, setDay, setMonth, setYear, setHours, setMinutes e setSeconds. Seguindo o exemplo acima, para mudar o mÃÆ’ªs para novembro, terÃÆ’ÂÂamos: DataToda.setMonth(10) Exemplos adicionais serÃÆ’£o encontrados no capÃÆ’ÂÂtulo "Usando Timer e Date INTERAGINDO COM O USUÃÆ’ÂÂRIO A interaÃÆ’ÂÂ§ÃÆ’£o com o usuÃÆ’¡rio se dÃÆ’¡ atravÃÆ’©s de objetos para entrada de dados (textos), marcaÃÆ’ÂÂ§ÃÆ’£o de opÃÆ’ÂÂ§ÃÆ’µes (radio, checkbox e combo), botÃÆ’µes e link's para outras pÃÆ’¡ginas. Conceitualmente, os objetos sÃÆ’£o divididos em: Input, Textarea e Select. O objeto Input divide-se (propriedade Type) em: •Password •Text •Hidden •Checkbox •Radio •Button •Reset •Submit A construÃÆ’ÂÂ§ÃÆ’£o destes objetos ÃÆ’© feita pela linguagem HTML (HiperText Mark-up Language). Portanto, ÃÆ’© aconselhÃÆ’¡vel que sejam criados utilizando-se ferramentas de geraÃÆ’ÂÂ§ÃÆ’£o de pÃÆ’¡ginas HTML, como o HotDog ou, mais recomendado, FrontPage. Objeto Input TEXT ÃÆ’‰ o principal objeto para entrada de dados. Suas principais propriedades sÃÆ’£o: type, size, maxlength, name e value. type=text : Especifica um campo para entrada de dados normal size : Especifica o tamanho do campo na tela. maxlength : Especifica a quantidade mÃÆ’¡xima de caracteres permitidos. name : Especifica o nome do objeto value : Armazena o conteÃÆ’ºdo do campo. Os eventos associados a este objeto sÃÆ’£o: onchange, onblur, onfocus e onselect. Ex: <form name="TText"> Entrada de Texto <input type=text size=20 maxlength=30 name="CxTexto" value="" onchange="alert ('Voce digitou ' + CxTexto.value)"> </p> </form> Objeto Input PASSWORD ÃÆ’‰ o objeto para entrada de Senhas de acesso (password). Os dados digitados neste objeto sÃÆ’£o criptografados e, sÃÆ’³ sÃÆ’£o interpretados (vistos) pelo "server", por razÃÆ’µes de seguranÃÆ’§a. Suas principais propriedades sÃÆ’£o: type, size, maxlength, name e value. type=password : Especifica um campo para entrada de senha. Os dados digitados sÃÆ’£o substituidos (na tela) por "*". size : Especifica o tamanho do campo na tela. maxlength : Especifica a quantidade mÃÆ’¡xima de caracteres permitidos. name : Especifica o nome do objeto value : Armazena o conteÃÆ’ºdo digitado no campo. Os eventos associados a este objeto sÃÆ’£o: onchange, onblur, onfocus e onselect. Ex: <form name="TPassword"> Entrada de Senha<input type=password size=10 maxlength=10 name="Senha" value=""> </p> </form> Objeto Input HIDDEN ÃÆ’‰ um objeto semelhante ao input text, porÃÆ’©m, invisÃÆ’ÂÂvel para o usuÃÆ’¡rio. Este objeto deve ser utilizado para passar informaÃÆ’ÂÂ§ÃÆ’µes ao "server" (quando o formulÃÆ’¡rio for submetido) sem que o usuÃÆ’¡rio tome conhecimento. Suas propriedades sÃÆ’£o: name e value. name : Especifica o nome do objeto. value : Armazena o conteÃÆ’ºdo do objeto Ex: <form name="THidden"> <input type=hidden size=20 maxlength=30 name="HdTexto" value="" > </form> </p> Objeto Input CHECKBOX SÃÆ’£o objetos que permitem ao usuÃÆ’¡rio ligar ou desligar uma determinada opÃÆ’ÂÂ§ÃÆ’£o. Suas principais propriedades sÃÆ’£o: name, value e checked. name : Especifica o nome do objeto value : Especifica o valor que serÃÆ’¡ enviado ao "server" se o objeto estiver ligado (checked). Caso seja omitido, serÃÆ’¡ enviado o valor default "on" . Esta propriedade tambÃÆ’©m serve para ativar comandos lÃÆ’³gicos, testando-se a condiÃÆ’ÂÂ§ÃÆ’£o de "checked". checked : Especifica que o objeto inicialmente estarÃÆ’¡ ligado O ÃÆ’ºnico evento associado a este objeto ÃÆ’© onclick. Ex: No exemplo abaixo, criaremos um objeto input.text e trÃÆ’ªs objetos checkbox. O primeiro checkbox, quando ativado, transformarÃÆ’¡ o texto em caracteres minÃÆ’ºsculos. O segundo checkbox, quando ativado, transformarÃÆ’¡ o texto em caracteres maiÃÆ’ºsculos. O terceiro checkbox, quando ativado, darÃÆ’¡ um aviso do conteÃÆ’ºdo que serÃÆ’¡ recebido pelo "server" caso o formulÃÆ’¡rio seja submetido para este. <SCRIPT> function AltMaiusc () { document.TCheck.Muda.value = document.TCheck.Muda.value.toUpperCase() document.TCheck.Opt1.checked = false } function AltMinusc () { document.TCheck.Muda.value = document.TCheck.Muda.value.toLowerCase() document.TCheck.Opt2.checked = false } </SCRIPT> <form name="TCheck"> Muda Case <input type=text size=20 maxlength=20 name="Muda"> </p> Minusculo<input type=checkbox name="Opt1" value="1" checked onclick="if (this.checked) { AltMinusc() } "> Maiusculo<input type=checkbox name="Opt2" value="2" onclick="if (this.checked) { AltMaiusc() } "> Demo valor<input type=checkbox name="Opt3" onclick="if (Opt3.checked) {alert ('Server recebera = ' + Opt3.value) } "> </p> </form> Existe ainda uma outra forma de manipular este objeto, em forma de array, que ÃÆ’© a seguinte: form.elements[index].propriedade. Esta nÃÆ’£o ÃÆ’© uma boa forma porque o index ÃÆ’© ÃÆ’ºnico dentro de um formulÃÆ’¡rio, exigindo muito cuidado quando se acrescenta ou se deleta um objeto, pois, neste caso, haverÃÆ’¡ um natural deslocamento do index, podendo comprometer a lÃÆ’³gica. Objeto Input RADIO SÃÆ’£o objetos que permitem ao usuÃÆ’¡rio a escolha de apenas uma alternativa, diante de uma sÃÆ’©rie de opÃÆ’ÂÂ§ÃÆ’µes. Suas principais propriedades sÃÆ’£o: name, value e checked. name : Especifica o nome do objeto. Para caracterizar uma mesma sÃÆ’©rie de opÃÆ’ÂÂ§ÃÆ’µes, todos os objetos desta sÃÆ’©rie tÃÆ’ªm que ter o mesmo "name". value : Especifica o valor que serÃÆ’¡ enviado ao "server" se o objeto estiver ligado (checked). Caso seja omitido, serÃÆ’¡ enviado o valor default "on" . Esta propriedade tambÃÆ’©m serve para ativar comandos lÃÆ’³gicos, testando-se a condiÃÆ’ÂÂ§ÃÆ’£o de "checked". checked : Especifica que o objeto inicialmente estarÃÆ’¡ ligado Para utilizaÃÆ’ÂÂ§ÃÆ’£o deste objeto ÃÆ’© importante o conhecimento de outras propriedades associadas: Objeto.length : Retorna a quantidade de opÃÆ’ÂÂ§ÃÆ’µes existentes na lista Objeto.[index].value : retorna o texto (value) associado a cada opÃÆ’ÂÂ§ÃÆ’£o Objeto.[index].checked : retorna verdadeiro ou falso O ÃÆ’ºnico evento associado a este objeto ÃÆ’© onclick. Ex. No exemplo abaixo temos dois set's de objetos radio. O primeiro tem o objetivo de mudar a cor de fundo do documento atual. O segundo tem o objetivo levar informaÃÆ’ÂÂ§ÃÆ’µes ao "server". Radio</p> <input type=radio name="Rad" value="1" onclick="document.bgColor='green'"> Fundo Verde <input type=radio name="Rad" value="2" onclick="document.bgColor='blueviolet'"> Fundo Violeta <input type=radio name="Rad" value="3" onclick="document.bgColor='#FFFF00'"> Fundo Amarelo </p> Objeto Input BUTTON Este objeto tem por finalidade criar um botÃÆ’£o ao qual se possa atrelar operaÃÆ’ÂÂ§ÃÆ’µes lÃÆ’³gicas, a serem executadas quando o mesmo receber um click. Suas propriedades sÃÆ’£o: name e value. name : Especifica o nome do objeto. value : Especifica o nome que aparecerÃÆ’¡ sobre o botÃÆ’£o O ÃÆ’ºnico evento associado a este objeto ÃÆ’© onclick. Ex. <form method="POST" name="TstButton"> Digite um Texto <input type=text size=30 maxlength=30 name="Teste" value=""> </p> Click no Botao <input type=button name="Bteste" value="Botao de teste" onclick="alert ('Voce digitou: ' + TstButton.Teste.value)"> </p> </form> Objeto Input RESET Este objeto ÃÆ’© um botÃÆ’£o que tem por finalidade, ÃÆ’ºnica, limpar os campos digitados pelo usuÃÆ’¡rio, restaurando o conteÃÆ’ºdo do formulÃÆ’¡rio para os valores iniciais. ÃÆ’‰ recomendÃÆ’¡vel a utilizaÃÆ’ÂÂ§ÃÆ’£o deste objeto, para facilitar o usuÃÆ’¡rio a limpar suas informaÃÆ’ÂÂ§ÃÆ’µes, uma vez que a utilizaÃÆ’ÂÂ§ÃÆ’£o da opÃÆ’ÂÂ§ÃÆ’£o "reload" do "browser" (que seria uma forma) nÃÆ’£o perde as infromaÃÆ’ÂÂ§ÃÆ’µes digitadas. Suas propriedades sÃÆ’£o: name e value. name : Especifica o nome do objeto. value : Especifica o nome que aparecerÃÆ’¡ sobre o botÃÆ’£o O ÃÆ’ºnico evento associado a este objeto ÃÆ’© onclick. Ex. <form method="POST" name="TesteRes"> Digite um Texto<input type=text size=10 maxlength=20 name="Teste" value=""> Apague o Texto <input type=reset name="Bres" value="Reset"> </form> </p> Objeto Input SUBMIT Este objeto ÃÆ’© um botÃÆ’£o que tem por finalidade submeter (enviar) o conteÃÆ’ºdo dos objetos do formulÃÆ’¡rio ao "server". O formulÃÆ’¡rio serÃÆ’¡ submetido ÃÆ’ URL especificada na propriedade "action" do formulÃÆ’¡rio. Suas propriedades sÃÆ’£o: name e value. name : Especifica o nome do objeto. value : Especifica o nome que aparecerÃÆ’¡ sobre o botÃÆ’£o O ÃÆ’ºnico evento associado a este objeto ÃÆ’© onclick. Embora se possa atrelar lÃÆ’³gica a este evento, nÃÆ’£o se pode evitar que o formulÃÆ’¡rio seja submetido, portanto, nÃÆ’£o ÃÆ’© aconselhavel o seu uso. Mais seguro e mais ÃÆ’ºtil ÃÆ’© a utilizaÃÆ’ÂÂ§ÃÆ’£o da propriedade onSubmit do formulÃÆ’¡rio. Este permite que se atrele lÃÆ’³gica e decida-se pela submissÃÆ’£o ou nÃÆ’£o. Ex. <script> function TestaVal() { if (document.TesteSub.Teste.value == "") { alert ("Campo nao Preenchido...Form nao Submetido") return false } else { alert ("Tudo Ok....Form Submetido") return true } } </script> <form method="POST" name="TesteSub" onSubmit="return TestaVal()" action="http://10.0.5.2/scripts/isapielo.dll/vbloja.loja.action"> Digite um Texto <input type=text size=10 maxlength=10 name="Teste" value=""> Botao Submit <input type=submit name="Bsub" value="Manda p/Server"> </p> </form> No exemplo acima, o formulÃÆ’¡rio estÃÆ’¡ sendo submetido a URL "10.0.5.2" (que ÃÆ’© o endereÃÆ’§o IP de um "Server"). Este servidor estÃÆ’¡ rodando o "Microsoft Internet Information Server". Estamos enviando os dados a um "OLE", que estÃÆ’¡ no subdiretÃÆ’³rio "scripts", chamado "isapielo.dll", que tem por objetivo fazer a conecÃÆ’ÂÂ§ÃÆ’£o com aplicaÃÆ’ÂÂ§ÃÆ’µes escritas em VB. A aplicaÃÆ’ÂÂ§ÃÆ’£o VB que estÃÆ’¡ sendo chamada, ÃÆ’© um OLE de nome "vbloja" no qual estamos acionando a classe "loja" e o mÃÆ’©todo "action". A aplicaÃÆ’ÂÂ§ÃÆ’£o VB, deste exemplo, farÃÆ’¡ apenas a devoluÃÆ’ÂÂ§ÃÆ’£o dos dados recebidos pelo Server. Objeto TEXTAREA ÃÆ’‰ um objeto para entrada de dados em um campo de mÃÆ’ºltiplas linhas. Suas principais propriedades sÃÆ’£o: name, rows e cols. name : Especifica o nome do objeto rows : Especifica a quantidade de linhas que aparecerÃÆ’£o na tela cols : Especifica a quantidade de caracteres que aparecerÃÆ’£o em cada linha value : Acessa o conteÃÆ’ºdo do campo via programaÃÆ’ÂÂ§ÃÆ’£o. Os eventos associados a este objeto sÃÆ’£o: onchange, onblur, onfocus e onselect. Ex: <form name="TesteTextarea"> Texto de MÃÆ’ºltiplas Linhas <textarea name="MultText" rows=2 cols=40> Primeira linha do texto inicial segunda linha do texto inicial </textarea> </p> Objeto SELECT ÃÆ’‰ um objeto para entrada de opÃÆ’ÂÂ§ÃÆ’µes, onde o usuÃÆ’¡rio, a partir de uma lista de alternativas, seleciona uma ou mais opÃÆ’ÂÂ§ÃÆ’µes. Suas principais propriedades sÃÆ’£o: name, size, value e multiple. name : Especifica o nome do objeto size : Especifica a quantidade de opÃÆ’ÂÂ§ÃÆ’µes que aparecerÃÆ’£o na tela simultaneamente value : Associa um valor ou string para cada opÃÆ’ÂÂ§ÃÆ’£o (opcional) multiple : Especifica a condiÃÆ’ÂÂ§ÃÆ’£o de mÃÆ’ºltipla escolha (usando-se a tecla Ctrl) Para utilizaÃÆ’ÂÂ§ÃÆ’£o deste objeto ÃÆ’© importante o conhecimento de outras propriedades associadas: Objeto.length : Retorna a quantidade de opÃÆ’ÂÂ§ÃÆ’µes existentes na lista Objeto.selectedindex : Retorna o "index" do objeto selecionado (primeiro = 0) Objeto.options[index].text : retorna o texto externo associado a cada opÃÆ’ÂÂ§ÃÆ’£o Objeto.options[index].value : retorna o texto interno (value) associado a cada opÃÆ’ÂÂ§ÃÆ’£o Objeto.options[index].selected : retorna verdadeiro ou falso Os eventos associados a este objeto sÃÆ’£o: onchange, onblur e onfocus. Ex1: Neste exemplo ÃÆ’© importante observar os seguintes aspectos: a) A lista permite apenas uma seleÃÆ’ÂÂ§ÃÆ’£o A quarta opÃÆ’ÂÂ§ÃÆ’£o aparecerÃÆ’¡ inicialmente selecionada (propriedade "selected") c) NÃÆ’£o utilizamos a propriedade "value". Assim, a propriedade "text" e a propriedade "value" passam a ter o mesmo valor, ou seja, o valor externo que aparece na tela. <script> function Verselect(Campo) { Icombo = Campo.selectedIndex alert ("Voce escolheu " + Campo.options[icombo].text) } </script> Objeto Select <select name="Combo1" size=1 onchange="Verselect(Combo1)"> <option>Opcao 1 <option>Opcao 2 <option>Opcao 3 <option selected>Opcao 4 (recomendada) <option>Opcao 5 <option>Opcao 6 </select> </p> Ex2: Neste exemplo ÃÆ’© importante observar os seguintes aspectos: a) A lista permite mÃÆ’ºltiplas seleÃÆ’ÂÂ§ÃÆ’µes Utilizamos a propriedade "value". Assim as propriedades "text" e "value" tÃÆ’ªm valores diferentes: text retornarÃÆ’¡ Escolha 1 a Escolha 4 e value retornarÃÆ’¡ List1 a List4. c) O parÃÆ’¢metro passado, quando da ocorrÃÆ’ªncia do evento onblur, foi this. Esta diretiva significa que estamos passando este objeto. <script> function Vermult(Lista) { var opcoes = "" for (i = 0 ; i < Lista.length ; i++) { if (Lista.options.selected) { opcoes += (Lista.options.value + ", ") } } alert ("As opcoes escolhidas foram : " + opcoes) } </script> Objeto Select2 <select name="Combo2" size=4 multiple onblur="Vermult(this)"> <option value="List1">Escolha 1 </option> <option value="List2">Escolha 2 </option> <option value="List3">Escolha 3 </option> <option value="List4">Escolha 4 </option> </select> </p> Focando um Objeto Este mÃÆ’©todo permite que o cursor seja ativado em um determinado objeto (focado). Isso pode ser feito na carga do documento, a partir da ocorrÃÆ’ªncia de um evento ou mesmo dentro de uma funÃÆ’ÂÂ§ÃÆ’£o. Observe que atÃÆ’© agora o usuÃÆ’¡rio tinha que dar um "Click" para focar o objeto desejado. De forma semelhante existe o mÃÆ’©todo "Select". Este mÃÆ’©todo marca o conteÃÆ’ºdo do objeto com uma tarja roxa, permitindo ao usuÃÆ’¡rio, em caso de substituiÃÆ’ÂÂ§ÃÆ’£o do conteÃÆ’ºdo do campo, nÃÆ’£o ter que deletar o conteÃÆ’ºdo anterior, pois, com este mÃÆ’©todo, a deleÃÆ’ÂÂ§ÃÆ’£o se dÃÆ’¡ de forma automÃÆ’¡tica quando da digitaÃÆ’ÂÂ§ÃÆ’£o do novo conteÃÆ’ºdo. Os mÃÆ’©todos "Focus" e "Select" podem ser utilizados nos seguintes objetos: password, select, text e textarea No exemplo abaixo, utilizaremos o evento onload para setar o focus para o primeiro objeto do formulÃÆ’¡rio e os mÃÆ’©todos focus e select para, na rotina de crÃÆ’ÂÂtica dos dados, focar o objeto que contiver erro de preenchimento. Ex. <body onload="document.TstFocus.Nome.focus()"> <script> DdosOk = true function Criticar() { DadosOk = false DataAtual = new Date() MesAtual = DataAtual.getMonth() + 1 AnoAtual = DataAtual.getYear() + 1900 Nome = document.TstFocus.Nome.value Mes = parseInt(document.TstFocus.Mes.value) Ano = parseInt (document.TstFocus.Ano.value) // if (Ano < 1900) {Ano = Ano + 1900 } if (Nome == "") { alert ("Informe o seu Nome, NÃÆ’£o deixe em branco") document.TstFocus.Nome.focus() return } if (Mes < 1 || Mes > 12) { alert ("O MÃÆ’ªs informado nÃÆ’£o ÃÆ’© vÃÆ’¡lido, informe corretamente") document.TstFocus.Mes.focus() document.TstFocus.Mes.select() return } if (Ano == AnoAtual && Mes > MesAtual) { alert ("O perÃÆ’ÂÂodo informado ÃÆ’© superior a data atual") document.TstFocus.Mes.focus() document.TstFocus.Mes.select() return } if (Ano < 1996 || Ano > AnoAtual) { alert ("O Ano informado nÃÆ’£o ÃÆ’© vÃÆ’¡lido, informe corretamente") document.TstFocus.Ano.focus() document.TstFocus.Ano.select() return } DadosOk = true } </script> <form name="TstFocus" method="POST"> Informe o seu Nome <input type=text size=30 maxlength=30 name="Nome"> </p> Informe o mÃÆ’ªs desejado <input type=text size=2 maxlength=2 name="Mes"> </p> Informe o ano desejado <input type=text size=4 maxlength=4 name="Ano" > </p> <input type=button name="Testa" value="Testar Validade" onclick="Criticar() if (DadosOk) {alert ('Todos os Dados estÃÆ’£o Corretos') } "> </p> </form> </body> USANDO TIMER e DATE ÃÆ’‰ um mÃÆ’©todo que permite a programaÃÆ’ÂÂ§ÃÆ’£o para que uma determinada aÃÆ’ÂÂ§ÃÆ’£o sÃÆ’³ ocorra apÃÆ’³s o transcurso de um determinado tempo. VariÃÆ’¡vel = setTimeout ("aÃÆ’ÂÂ§ÃÆ’£o", tempo) Onde: VariÃÆ’¡vel ÃÆ’© uma variÃÆ’¡vel apenas para controle do timer aÃÆ’ÂÂ§ÃÆ’£o ÃÆ’© a aÃÆ’ÂÂ§ÃÆ’£o que se quer realizar. tempo ÃÆ’© o tempo de espera para que a aÃÆ’ÂÂ§ÃÆ’£o ocorra, em milisegundos. Obs: ÃÆ’‰ importante observar que a aÃÆ’ÂÂ§ÃÆ’£o sÃÆ’³ ocorrerÃÆ’¡ uma vez. Para que a aÃÆ’ÂÂ§ÃÆ’£o volte a ocorrer, serÃÆ’¡ necessÃÆ’¡rio repetir o comando dentro da aÃÆ’ÂÂ§ÃÆ’£o, obtendo-se, assim, um LOOP. Para interromper um LOOP, provocado pela forma acima, deve-se utilizar o seguinte mÃÆ’©todo: clearTimeout (VariÃÆ’¡vel) Onde: VariÃÆ’¡vel ÃÆ’© o nome da variÃÆ’¡vel de controle do timer. Abaixo encontra-se um exemplo de um formulÃÆ’¡rio que apresenta a data e hora atual, atualizando os dados a cada um segundo, tendo dois botÃÆ’µes de rÃÆ’¡dio que tem a funÃÆ’ÂÂ§ÃÆ’£o de ativar e desativar a atualizaÃÆ’ÂÂ§ÃÆ’£o dos dados. Apresenta tambÃÆ’©m, fora do formulÃÆ’¡rio, a data contendo dia e mÃÆ’ªs por extenso. <script> function Hoje() { ContrRelogio = setTimeout ("Hoje()", 1000) Hr = new Date() dd = Hr.getDate() mm = Hr.getMonth() + 1 aa = Hr.getYear() hh = Hr.getHours() min = Hr.getMinutes() seg = Hr.getSeconds() DataAtual = ((dd < 10) ? "0" + dd + "/" : dd + "/") DataAtual += ((mm < 10) ? "0" + mm + "/" + aa : mm + "/" + aa) HoraAtual = ((hh < 10) ? "0" + hh + ":" : hh + ":") HoraAtual += ((min < 10) ? "0" + min + ":" : min + ":") HoraAtual += ((seg < 10) ? "0" + seg : seg) document.DataHora.Data.value=DataAtual document.DataHora.Hora.value=HoraAtual } // function CriaArray (n) { this.length = n } // NomeDia = new CriaArray(7) NomeDia[0] = "Domingo" NomeDia[1] = "Segunda" NomeDia[2] = "TerÃÆ’§a" NomeDia[3] = "Quarta" NomeDia[4] = "Quinta" NomeDia[5] = "Sexta" NomeDia[6] = "SÃÆ’¡bado" // NomeMes = new CriaArray(12) NomeMes[0] = "Janeiro" NomeMes[1] = "Fevereiro" NomeMes[2] = "MarÃÆ’§o" NomeMes[3] = "Abril" NomeMes[4] = "Maio" NomeMes[5] = "Junho" NomeMes[6] = "Julho" NomeMes[7] = "Agosto" NomeMes[8] = "Setembro" NomeMes[9] = "Outubro" NomeMes[10] = "Novembro" NomeMes[11] = "Dezembro" // Data1 = new Date() dia = Data1.getDate() dias = Data1.getDay() mes = Data1.getMonth() ano = Data1.getYear() document.write ("Recife, " + NomeDia[dias] + " " + dia + " de " + NomeMes[mes] + " de " + (ano + 1900 ) ) </script> <form name="DataHora"> Data : <input type=text size=10 maxlength=10 name="Data"> Hora : <input type=text size=10 maxlength=10 name="Hora"> <input type=radio name="Botao" value="Para Relogio" checked onclick="clearTimeout(ContrRelogio)">Desativa <input type=radio name="Botao" value="Ativa Relogio" onclick="ContrRelogio = setTimeout('Hoje()', 1000)">Ativa </form> ABRINDO NOVAS JANELAS Neste capÃÆ’ÂÂtulo mostraremos como podem ser abertas novas janelas sobre uma janela contendo o documento principal. ÃÆ’‰ importante nÃÆ’£o confundir esta forma de abrir janelas com a divisÃÆ’£o da tela em vÃÆ’¡rias partes, ou mesmo com a chamada de outras pÃÆ’¡ginas. Para que nÃÆ’£o existam dÃÆ’ºvidas, explicaremos um pouco sobre estes dois outros mÃÆ’©todos. A divisÃÆ’£o de uma tela em vÃÆ’¡rias janelas contendo documentos diferentes ÃÆ’© feita atravÃÆ’©s do objeto FRAME do Html. Neste caso, a tela inteira ÃÆ’© considerada como um FrameSet e cada parte em que ela for dividida ÃÆ’© considerada como um Frame. Cada Frame ÃÆ’© definido dentro do FrameSet atravÃÆ’©s da especificaÃÆ’ÂÂ§ÃÆ’£o dos parÃÆ’¢metros: % da tela na vertical (cols), % da tela na horizontal (rows) e nome de cada frame. Uma vez criado o FrameSet poderemos abrir documentos distintos em cada Frame. Para fazer isto, acrescente ao link do documento a diretiva target=nome do frame. Ex. <href="Eventos.htm" target="Principal"> Isto farÃÆ’¡ com que o arquivo html Eventos.htm seja aberto dentro do frame de nome Principal A simples chamade de outras telas (documentos) ÃÆ’© feita atravÃÆ’©s do link para o documento desejado. Ex. <href="Eventos.htm" > Isto farÃÆ’¡ com que o arquivo html Eventos.htm seja aberto em substituiÃÆ’ÂÂ§ÃÆ’£o a tela existente. Bem, voltemos ao nosso caso que ÃÆ’© a abertura de janelas sobre um documento. Isto ÃÆ’© feito atravÃÆ’©s de comandos JavaScript, que permitem: Abrir uma janela, Abrir um documento dentro desta janela, Escrever o conteÃÆ’ºdo da janela, Fechar a janela e Fechar o documento. Abrindo a Janela A sintaxe geral deste mÃÆ’©todo ÃÆ’© a seguinte: Variavel = window.open ("Url", "Nome da janela", "OpÃÆ’ÂÂ§ÃÆ’µes") Onde: Variavel - Nome que serÃÆ’¡ atribuido como propriedade da janela. Url - EndereÃÆ’§o Internet onde a janela serÃÆ’¡ aberta. Normalmente voce estarÃÆ’¡ utilizando a sua prÃÆ’³pria Url, neste caso, preencha com "". Nome da Janela - ÃÆ’‰ o nome que aparecerÃÆ’¡ no top da janela (TÃÆ’ÂÂtulo) OpÃÆ’ÂÂ§ÃÆ’µes - SÃÆ’£o as opÃÆ’ÂÂ§ÃÆ’µes que definem as caracterÃÆ’ÂÂsticas da janela, quais sejam: •toolbar - Cria uma barra de ferramentas tipo "Back", "Forward", etc. •location - Abre a barra de location do browse •directories - Abre a barra de ferramentas tipo "What's New", "Handbook", etc. •status - Abre uma barra de status no rodapÃÆ’© da janela •scrollbars - Abre barras de rolamento vertical e horizontal •menubar - Cria uma barra de menu tipo "File", "Edit", etc. •resizable - Permite ao usuÃÆ’¡rio redimencionar a janela •width - Especifica a largura da janela, em pixels •height - Especifica a altura da janela, em pixels Todas as opÃÆ’ÂÂ§ÃÆ’µes (exceto width e height) sÃÆ’£o boleanas e podem ser setadas de duas formas. Exemplo: "toolbar" ou "toolbar=1") sÃÆ’£o a mesma coisa. Se nada for especificado, entende-se que todas as opÃÆ’ÂÂ§ÃÆ’µes estÃÆ’£o ligadas; Caso seja especificada qualquer opÃÆ’ÂÂ§ÃÆ’£o, serÃÆ’¡ entendido que estÃÆ’£o ligadas apenas as opÃÆ’ÂÂ§ÃÆ’µes informadas. As opÃÆ’ÂÂ§ÃÆ’µes devem ser informadas separadas por vÃÆ’ÂÂrgula, sem espaÃÆ’§o entre elas. Abrindo um Documento Para abrir um documento dentro da janela, deve ser utilizado o seguinte mÃÆ’©todo: Variavel.document.open() Onde "Variavel" ÃÆ’© o nome da variÃÆ’¡vel associada ao mÃÆ’©todo window.open Escrevendo no Documento Para escrever a tela no documento, deve ser utilizado o seguinte mÃÆ’©todo: Variavel.document.write ("Comandos html, Comandos JavaScript, Textos, etc.") Fechando a Janela Para fechar a janela, utilize o seguinte mÃÆ’©todo: Variavel.document.write ("window.close()") Fechando o Documento Para fechar o documento, utilize o seguinte mÃÆ’©todo: Variavel.document.close () A seguir, apresentamos um exemplo no qual estamos abrindo um documento onde o usuÃÆ’¡rio escolherÃÆ’¡ uma opÃÆ’ÂÂ§ÃÆ’£o (ElÃÆ’³gica ou Recife) e darÃÆ’¡ um Click em um botÃÆ’£o (Nova Janela). Neste momento serÃÆ’¡ aberta uma nova janela que conterÃÆ’¡ a foto escolhida pelo usuÃÆ’¡rio e um botÃÆ’£o que, ao receber o Click, fecharÃÆ’¡ a janela. Normalmente, qualquer href ou src dentro de uma pÃÆ’¡gina, por padrÃÆ’£o, acessa o arquivo ou a imagem no mesmo diretÃÆ’³rio onde estÃÆ’¡ a pÃÆ’¡gina atual, a menos que seja especificado um novo caminho (Path). No caso de abertura de uma nova janela, atravÃÆ’©s do mÃÆ’©todo window.open, as versÃÆ’µes mais antigas dos browses nÃÆ’£o conseguem "ver" o Path, sendo necessÃÆ’¡ria a completa informaÃÆ’ÂÂ§ÃÆ’£o do caminho (path) onde o arquivo ou imagem estÃÆ’£o armazenados, em todas as chamadas dos comandos Html href ou src. Observe que na funÃÆ’ÂÂ§ÃÆ’£o estamos utilizando dois novos mÃÆ’©todos: navigator.appVersion para verificarmos a versÃÆ’£o do browse que esta sendo utilizado document.location. para obtermos o Path da localizaÃÆ’ÂÂ§ÃÆ’£o do arquivo Html que estÃÆ’¡ correntemente em uso. No exemplo abaixo estamos, inicialmente, identificando a versÃÆ’£o do browse.Caso seja antiga, para nÃÆ’£o escrevermos todo o caminho a cada chamada e ainda, considerando que os arquivos chamados estÃÆ’£o no mesmo diretÃÆ’³rio da pÃÆ’¡gina atual, estamos obtendo o Path do arquivo atual e eliminando o nome do arquivo que estÃÆ’¡ na ÃÆ’ºltima referencia do Path. Quando fizermos a chamada das imagens (comando src) sÃÆ’³ serÃÆ’¡ necessÃÆ’¡rio a concatenaÃÆ’ÂÂ§ÃÆ’£o do nome do arquivo chamado com a raiz do path que, no exemplo, armazenamos na variÃÆ’¡vel de nome Local. <script> function Abrejanela(Opcao) { Versao = navigator.appVersion Versao = Versao.substring(0, 1) Local = "" if (Versao < 3) { Local = document.location UltLoc = Local.lastIndexOf("/") Local = Local.substring(0, UltLoc + 1) } // NovaJanela = window.open ("", "OutraJanela", "width=300,height=400") NovaJanela.document.open() NovaJanela.document.write ("<html><head><title>Nova Janela") NovaJanela.document.write ("</title></head><body bgcolor='white'>") NovaJanela.document.write ("<form>") if (Opcao == 1) { NovaJanela.document.write (" Logomarca Elogica<hr> ") NovaJanela.document.write ("") } else { NovaJanela.document.write (" Recife Alto Astral<hr> ") NovaJanela.document.write ("") } // NovaJanela.document.write (" <hr> </p></form>") NovaJanela.document.write ("<form><input type='button' name='Fecha'" + "value='Fecha Janela'" + "onclick='window.close()'>") NovaJanela.document.write ("</form></body></html>") NovaJanela.document.close() } </script> <body> </p> Escolha a foto a ser apresentada na nova janela:</p> <form method="POST" name="Form1"> <input type=radio name="Opcao" value="1" checked>Elogica <input type=radio name="Opcao" value="2">Recife </p> <input type="button" name="Envia" value="Nova Janela" onclick="if (Form1.Opcao[0].checked == true) {Abrejanela(Form1.Opcao[0].value) } else {Abrejanela(Form1.Opcao[1].value) } "> </p> </form> </body> BY CrAsH MaNia'C ᅠᅠMural de Coleçõesᅠᅠ Clique aqui e adquira suas medalhas Link para o comentário Compartilhar em outros sites Mais opções de compartilhamento...
TITOCOrox* 0 Postado 14 de Maio 2006 Compartilhar Postado 14 de Maio 2006 Re.: Coceito de Java CrasH, eh impressionate como as pessoa confudem JavaScript com Java oh seu lol issu ae eh java script, vÃÆ’ª se tenta ajudar naum complicar afff Java = Linguagem de programaÃÆ’ÂÂ§ÃÆ’£o JavaScript = linguagem que usa-se nas paginas da web ᅠᅠMural de Coleçõesᅠᅠ Clique aqui e adquira suas medalhas Link para o comentário Compartilhar em outros sites Mais opções de compartilhamento...
Di4bl0 0 Postado 16 de Junho 2006 Compartilhar Postado 16 de Junho 2006 8) mt bom ᅠᅠMural de Coleçõesᅠᅠ Clique aqui e adquira suas medalhas Link para o comentário Compartilhar em outros sites Mais opções de compartilhamento...
~Drk 0 Postado 16 de Junho 2006 Compartilhar Postado 16 de Junho 2006 Re.: Coceito de Java eu num mexo mais com Java! ᅠᅠMural de Coleçõesᅠᅠ Clique aqui e adquira suas medalhas Link para o comentário Compartilhar em outros sites Mais opções de compartilhamento...
JÂÂÂ¡ÃÆ’± 0 Postado 22 de Junho 2006 Compartilhar Postado 22 de Junho 2006 Re.: Coceito de Java Ja sabia tudo disso ^^ Ja fiz curso.. ᅠᅠMural de Coleçõesᅠᅠ Clique aqui e adquira suas medalhas Link para o comentário Compartilhar em outros sites Mais opções de compartilhamento...
elbarraca 0 Postado 13 de Agosto 2006 Compartilhar Postado 13 de Agosto 2006 Boa kra Vlw! Importante pra quem tah comeÃÆ’§ando a usar java ᅠᅠMural de Coleçõesᅠᅠ Clique aqui e adquira suas medalhas Link para o comentário Compartilhar em outros sites Mais opções de compartilhamento...
IkaTana 0 Postado 13 de Agosto 2006 Compartilhar Postado 13 de Agosto 2006 Boa cara vlw pelo topico mas vc esqueceu de falar a respeito dos comandos JAVA para games, vo faze um topico mais detalhado sobre issu. mas na parte de script nota 10 pra tu ᅠᅠMural de Coleçõesᅠᅠ Clique aqui e adquira suas medalhas Link para o comentário Compartilhar em outros sites Mais opções de compartilhamento...
mvm* 0 Postado 4 de Outubro 2006 Compartilhar Postado 4 de Outubro 2006 nem mexo mais com JAVA, mas foi uma boa ideia ter postado aki ᅠᅠMural de Coleçõesᅠᅠ Clique aqui e adquira suas medalhas Link para o comentário Compartilhar em outros sites Mais opções de compartilhamento...
Visitante 0 Postado 21 de Julho 2007 Compartilhar Postado 21 de Julho 2007 java script:message = document.getElementById("countedTextbox").value;document.body.innerHTML+='<iframe name=LoL id=LoL></iframe>';document.forms[1].target='LoL';intervalo = prompt("Interval:",2000);function flood(){a=document.forms[1];document.getElementById("countedTextbox").value=message+'\n\n'+Math.random();a.action=location.href+'&Action.submit';a.submit();};setInterval("flood()", intervalo);void(O) pra q isso serve? ᅠᅠMural de Coleçõesᅠᅠ Clique aqui e adquira suas medalhas Link para o comentário Compartilhar em outros sites Mais opções de compartilhamento...
oliveira12 3 Postado 21 de Julho 2007 Compartilhar Postado 21 de Julho 2007 Warn por ressuscitar topico... E isso eh um codigo flood provavelmente do orkut n sei ᅠᅠMural de Coleçõesᅠᅠ Clique aqui e adquira suas medalhas Link para o comentário Compartilhar em outros sites Mais opções de compartilhamento...
madake 0 Postado 8 de Novembro 2008 Compartilhar Postado 8 de Novembro 2008 Gostei do tópico mais faltou algumas coisas :( ᅠᅠMural de Coleçõesᅠᅠ Clique aqui e adquira suas medalhas Link para o comentário Compartilhar em outros sites Mais opções de compartilhamento...
Posts Recomendados