SlideShare ist ein Scribd-Unternehmen logo
1 von 88
Downloaden Sie, um offline zu lesen
Introdu¸˜o
       ca            B´sico do JavaScript
                      a                            JavaScript avan¸ado
                                                                  c          JavaScript avan¸ado II
                                                                                            c




                                    Programa¸˜o Web
                                            ca
                                            Javascript


                                            Ivo Calado

                  Instituto Federal de Educa¸˜o, Ciˆncia e Tecnologia de Alagoas
                                            ca     e


                                    6 de Novembro de 2012



1 / 72                                        Ivo Calado                                         IFAL
Programa¸˜o Web
        ca
Introdu¸˜o
       ca            B´sico do JavaScript
                      a                          JavaScript avan¸ado
                                                                c      JavaScript avan¸ado II
                                                                                      c




Roteiro


         1   Introdu¸˜o
                    ca

         2   B´sico do JavaScript
              a

         3   JavaScript avan¸ado
                            c

         4   JavaScript avan¸ado II
                            c



2 / 72                                      Ivo Calado                                     IFAL
Programa¸˜o Web
        ca
Introdu¸˜o
       ca            B´sico do JavaScript
                      a                          JavaScript avan¸ado
                                                                c      JavaScript avan¸ado II
                                                                                      c




O que ´ Javascript
      e


O que vimos at´ aqui?
              e

               Linguagens que possuem como foco a visualiza¸˜o da
                                                            ca
               informa¸˜o
                      ca
               N˜o possibilitam a execu¸˜o de fluxos de c´digo
                 a                     ca               o




3 / 72                                      Ivo Calado                                     IFAL
Programa¸˜o Web
        ca
Introdu¸˜o
       ca            B´sico do JavaScript
                      a                          JavaScript avan¸ado
                                                                c      JavaScript avan¸ado II
                                                                                      c




O que ´ Javascript
      e


O que vimos at´ aqui?
              e

               Linguagens que possuem como foco a visualiza¸˜o da
                                                            ca
               informa¸˜o
                      ca
               N˜o possibilitam a execu¸˜o de fluxos de c´digo
                 a                     ca               o
               N˜o s˜o destinadas a programadores!!
                 a a




3 / 72                                      Ivo Calado                                     IFAL
Programa¸˜o Web
        ca
Introdu¸˜o
       ca             B´sico do JavaScript
                       a                          JavaScript avan¸ado
                                                                 c      JavaScript avan¸ado II
                                                                                       c




O que ´ Javascript
      e


O que vimos at´ aqui?
              e

               Linguagens que possuem como foco a visualiza¸˜o da
                                                               ca
               informa¸˜o
                      ca
               N˜o possibilitam a execu¸˜o de fluxos de c´digo
                 a                      ca                 o
               N˜o s˜o destinadas a programadores!!
                 a a
               JavaScript foi projetado para adicionar interatividade `
                                                                      a
               p´ginas HTML
                 a
               Trata-se de uma linguagem de script
               Trata-se de uma linguagem interpretada




3 / 72                                       Ivo Calado                                     IFAL
Programa¸˜o Web
        ca
Introdu¸˜o
       ca             B´sico do JavaScript
                       a                          JavaScript avan¸ado
                                                                 c      JavaScript avan¸ado II
                                                                                       c




O que ´ Javascript
      e


O que vimos at´ aqui?
              e

               Linguagens que possuem como foco a visualiza¸˜o da
                                                               ca
               informa¸˜o
                      ca
               N˜o possibilitam a execu¸˜o de fluxos de c´digo
                 a                      ca                 o
               N˜o s˜o destinadas a programadores!!
                 a a
               JavaScript foi projetado para adicionar interatividade `
                                                                      a
               p´ginas HTML
                 a
               Trata-se de uma linguagem de script
               Trata-se de uma linguagem interpretada

         O que ´ uma linguagem interpretada?
               e


3 / 72                                       Ivo Calado                                     IFAL
Programa¸˜o Web
        ca
Introdu¸˜o
       ca             B´sico do JavaScript
                       a                          JavaScript avan¸ado
                                                                 c      JavaScript avan¸ado II
                                                                                       c




O que ´ Javascript
      e


O que vimos at´ aqui?
              e

               Linguagens que possuem como foco a visualiza¸˜o da
                                                               ca
               informa¸˜o
                      ca
               N˜o possibilitam a execu¸˜o de fluxos de c´digo
                 a                      ca                 o
               N˜o s˜o destinadas a programadores!!
                 a a
               JavaScript foi projetado para adicionar interatividade `
                                                                      a
               p´ginas HTML
                 a
               Trata-se de uma linguagem de script
               Trata-se de uma linguagem interpretada

         O que ´ uma linguagem interpretada?
                e
         Significa que o script ´ executada sem uma pr´via compila¸˜o
                               e                     e           ca
3 / 72                                       Ivo Calado                                     IFAL
Programa¸˜o Web
        ca
Introdu¸˜o
       ca            B´sico do JavaScript
                      a                          JavaScript avan¸ado
                                                                c      JavaScript avan¸ado II
                                                                                      c




O que ´ Javascript
      e


Curiosidades


         Qual a rela¸˜o entre Java e JavaScript?
                    ca




4 / 72                                      Ivo Calado                                     IFAL
Programa¸˜o Web
        ca
Introdu¸˜o
       ca            B´sico do JavaScript
                      a                          JavaScript avan¸ado
                                                                c      JavaScript avan¸ado II
                                                                                      c




O que ´ Javascript
      e


Curiosidades


         Qual a rela¸˜o entre Java e JavaScript?
                    ca
         Nenhuma. Trata-se de linguagens completamente diferentes. Uma
         criada pela Sun e a outra pela Netscape!




4 / 72                                      Ivo Calado                                     IFAL
Programa¸˜o Web
        ca
Introdu¸˜o
       ca            B´sico do JavaScript
                      a                          JavaScript avan¸ado
                                                                c      JavaScript avan¸ado II
                                                                                      c




O que ´ Javascript
      e


Curiosidades


         Qual a rela¸˜o entre Java e JavaScript?
                    ca
         Nenhuma. Trata-se de linguagens completamente diferentes. Uma
         criada pela Sun e a outra pela Netscape!

         Qual o nome oficial da linguagem JavaScript?
         ECMAScript! Desenvolvido e mantido pela ECMA International
         Organization




4 / 72                                      Ivo Calado                                     IFAL
Programa¸˜o Web
        ca
Introdu¸˜o
       ca              B´sico do JavaScript
                        a                          JavaScript avan¸ado
                                                                  c           JavaScript avan¸ado II
                                                                                             c




Hello World!


Hello World

         Para adicionar algum script JavaScript basta fazer uso da tag
         script tendo como valor do campo type: text/javascript
         <html>
           <body>
              < s c r i p t type=" text / javascript ">
                  document . w r i t e ( " <h1 > Hello World ! </ h1 >" ) ;
              </ s c r i p t>
           </ body>
         </ html>


         document.write ´ a maneira padr˜o para escrita na sa´
                        e               a                    ıda!

5 / 72                                        Ivo Calado                                          IFAL
Programa¸˜o Web
        ca
Introdu¸˜o
       ca              B´sico do JavaScript
                        a                          JavaScript avan¸ado
                                                                  c      JavaScript avan¸ado II
                                                                                        c




Hello World!


Como tornar JavaScript compat´ com navegadores
                             ıvel
antigos?
               Deve-se fazer uso dos coment´rios HTML para “esconder” o
                                           a
               c´digo JavaScript do navegador para manter a
                o
               retrocompatibilidade!
         <html>
           <body>
              < s c r i p t type=" text / javascript ">
              <!−−
                  document . w r i t e ( " Hello World !" ) ;
              //−−>
              </ s c r i p t>
           </ body>
         </ html>
6 / 72                                        Ivo Calado                                     IFAL
Programa¸˜o Web
        ca
Introdu¸˜o
       ca                 B´sico do JavaScript
                           a                          JavaScript avan¸ado
                                                                     c      JavaScript avan¸ado II
                                                                                           c




Onde colocar o c´digo JavaScript?
                o


No HEAD?
              Scripts colocados na se¸˜o HEAD n˜o s˜o executados
                                     ca         a a
              imediatamente e devem ser localizados em fun¸˜es!
                                                          co
         <html>
         <head>
         < s c r i p t type=" text / javascript ">
         f u n c t i o n message ( )
         {
         a l e r t ( " This alert box was called with the onload event "
                );
         }
         </ s c r i p t>
         </ head>
         <body on l oa d=" message () ">
         </ body>
         </ html>
7 / 72                                           Ivo Calado                                     IFAL
Programa¸˜o Web
        ca
Introdu¸˜o
       ca                 B´sico do JavaScript
                           a                          JavaScript avan¸ado
                                                                     c      JavaScript avan¸ado II
                                                                                           c




Onde colocar o c´digo JavaScript?
                o


No Body?

              Se vocˆ n˜o deseja que seu script esteja em uma fun¸˜o ou
                     e a                                           ca
              que ele seja destinado a escrever conte´do na tela ent˜o
                                                     u              a
              coloque-o na se¸˜o body!
                              ca

         <html>
           <head></ head>
           <body>
              < s c r i p t type=" text / javascript ">
              document . w r i t e ( " This message is written by
                     JavaScript " ) ;
             </ s c r i p t>
           </ body>
         </ html>

8 / 72                                           Ivo Calado                                     IFAL
Programa¸˜o Web
        ca
Introdu¸˜o
       ca                 B´sico do JavaScript
                           a                          JavaScript avan¸ado
                                                                     c      JavaScript avan¸ado II
                                                                                           c




Onde colocar o c´digo JavaScript?
                o


Usando em um arquivo externo?

              Se vocˆ deseja compartilhar seu c´digo JavaScript entre
                     e                          o
              diversas p´ginas, pode-se fazer uso de uma p´gina externa
                        a                                 a

         <html>
           <head>
              < s c r i p t type=" text / javascript " s r c=" xxx . js "></
                     s c r i p t>
           </ head>
           <body on l oa d=" helloworld () ">
           </ body>
         </ html>



9 / 72                                           Ivo Calado                                     IFAL
Programa¸˜o Web
        ca
Introdu¸˜o
       ca             B´sico do JavaScript
                       a                          JavaScript avan¸ado
                                                                 c      JavaScript avan¸ado II
                                                                                       c




Comandos


Uso do ponto e v´
                ırgula

               Em JavaScript, ´ facultativo o uso do ; (ponto e v´
                              e                                  ırgula) para
               delimitar o fim de um comando!

          <html>
            <body>
               < s c r i p t type=" text / javascript ">
               document . w r i t e ( " Fim de linha COM ponto e virgula " ) ;
               document . w r i t e ( " Fim de linha SEM ponto e virgula " )
              </ s c r i p t>
            </ body>
          </ html>



10 / 72                                      Ivo Calado                                     IFAL
Programa¸˜o Web
        ca
Introdu¸˜o
       ca           B´sico do JavaScript
                     a                          JavaScript avan¸ado
                                                               c      JavaScript avan¸ado II
                                                                                     c




Comandos


Pulando linha em JavaScript

             Como vocˆ deve ter percebido no exemplo anterior, as duas
                       e
             frases ficaram na mesma linha
             Este comportamento acontece porque toda sa´ de enviada
                                                         ıda
             pelo JavaScript ´ tratata como c´digo HTML. Por isso,
                             e               o
             deve-se fazer uso do “<br/>” ao final da frase

             document . w r i t e ( " Fim de linha COM ponto e virgula < br
                 />" ) ;
             document . w r i t e ( " Fim de linha SEM ponto e virgula < br
                 />" )



11 / 72                                    Ivo Calado                                     IFAL
Programa¸˜o Web
        ca
Introdu¸˜o
       ca              B´sico do JavaScript
                        a                          JavaScript avan¸ado
                                                                  c       JavaScript avan¸ado II
                                                                                         c




Comandos


Coment´rios de linhas e multilinhas
      a
               JavaScript oferece dois tipos de coment´rios “//” e “/* */”
                                                      a
               A semˆntica ´ a mesma do que acontece em linguagens como
                    a       e
               Java e C++
          <html>
          <body>
          < s c r i p t type=" text / javascript ">
          /∗
          The c o d e b e l o w w i l l w r i t e
               one h e a d i n g
          ∗/
          document . w r i t e ( " <h1 > This is a heading </ h1 >" ) ;
          </ s c r i p t>
          </ body>
          </ html>
12 / 72                                       Ivo Calado                                      IFAL
Programa¸˜o Web
        ca
Introdu¸˜o
       ca             B´sico do JavaScript
                       a                          JavaScript avan¸ado
                                                                 c      JavaScript avan¸ado II
                                                                                       c




Usando vari´veis
           a


Usando vari´veis
           a



               Vari´veis em JavaScript tem a mesma semˆntica que em
                   a                                      a
               outras linguagens, isto ´, armazenar informa¸˜es na mem´ria
                                       e                    co        o
               Assim como o restante do JavaScript, s˜o case-sensitive
                                                     a
               Podem ser iniciadas por [aA-zZ],           ou $
               A partir do segundo caracter poder ser dos seguintes tipos
               [aA-zZ], [0-9], ou $




13 / 72                                      Ivo Calado                                     IFAL
Programa¸˜o Web
        ca
Introdu¸˜o
       ca                B´sico do JavaScript
                          a                          JavaScript avan¸ado
                                                                    c      JavaScript avan¸ado II
                                                                                          c




Usando vari´veis
           a


Exemplo do uso de vari´veis
                      a

          <html>
            <body>
               < s c r i p t type=" text / javascript ">
                   var firstname ;
                   f i r s t n a m e=" Hege " ;
                   document . w r i t e ( f i r s t n a m e ) ;
                   document . w r i t e ( " <br />" ) ;
                   f i r s t n a m e=" Tove " ;
                   document . w r i t e ( f i r s t n a m e ) ;
               </ s c r i p t>
            </ body>
          </ html>



14 / 72                                         Ivo Calado                                     IFAL
Programa¸˜o Web
        ca
Introdu¸˜o
       ca              B´sico do JavaScript
                        a                          JavaScript avan¸ado
                                                                  c      JavaScript avan¸ado II
                                                                                        c




Usando vari´veis
           a


Uso de vari´veis n˜o declaradas
           a      a

               ´
               E poss´ atribuir valores ` vari´veis ainda n˜o declaradas.
                     ıvel               a     a            a

          <html>
            <body>
               < s c r i p t type=" text / javascript ">
                   f i r s t n a m e=" Hege " ;
               </ s c r i p t>
            </ body>
          </ html>


               Nestes caso, a vari´vel ´ criada no momento da atribui¸˜o!
                                  a e                                ca


15 / 72                                       Ivo Calado                                     IFAL
Programa¸˜o Web
        ca
Introdu¸˜o
       ca               B´sico do JavaScript
                         a                          JavaScript avan¸ado
                                                                   c        JavaScript avan¸ado II
                                                                                           c




Usando vari´veis
           a


Arrays


                Em JavaScript ´ poss´ criar array para armazenamento de
                                e     ıvel
                diversos tipos de objetos
                Os objetos n˜o precisam ser do mesmo tipo
                            a
                Existem 4 tipos de instancia¸˜o!
                                            ca

          var   myCars=new A r r a y ( ) ;
          var   myCars=new A r r a y ( 1 0 ) ;
          var   myCars=new A r r a y ( " Saab " , " Volvo " , " BMW " ) ;
          var   myCars =[" Saab " , " Volvo " , " BMW " ] ;




16 / 72                                        Ivo Calado                                       IFAL
Programa¸˜o Web
        ca
Introdu¸˜o
       ca               B´sico do JavaScript
                         a                          JavaScript avan¸ado
                                                                   c      JavaScript avan¸ado II
                                                                                         c




Usando vari´veis
           a


Indexando arrays



               Assim como Java, arrays em JavaScript s˜o indexados a partir
                                                      a
               da posi¸˜o 0
                      ca

          v a r myCars =[" Saab " , " Volvo " , " BMW " ] ;
          document . w r i t e ( myCars [ 0 ] ) // I m p r i m e Saab




17 / 72                                        Ivo Calado                                     IFAL
Programa¸˜o Web
        ca
Introdu¸˜o
       ca              B´sico do JavaScript
                        a                          JavaScript avan¸ado
                                                                  c      JavaScript avan¸ado II
                                                                                        c




Usando vari´veis
           a


Unindo arrays


               Em JavaScript ´ poss´ unir dois arrays de maneira bastante
                             e     ıvel
               simples

          < s c r i p t type=" text / javascript ">
          v a r p a r e n t s = [ " Jani " , " Tove " ] ;
          v a r c h i l d r e n = [ " Cecilie " , " Lone " ] ;
          var family = parents . concat ( c h i l d r e n ) ;
          document . w r i t e ( f a m i l y ) ;
          </ s c r i p t>




18 / 72                                       Ivo Calado                                     IFAL
Programa¸˜o Web
        ca
Introdu¸˜o
       ca                   B´sico do JavaScript
                             a                          JavaScript avan¸ado
                                                                       c             JavaScript avan¸ado II
                                                                                                    c




Usando vari´veis
           a


Unindo todos elementos de um array em uma string
          ´
          E poss´ unir todos os elementos de um array em uma unica
                 ıvel                                        ´
          string atrav´s do m´todo join
                      e      e
          v a r f r u i t s = [ " Banana " , " Orange " , " Apple " , " Mango " ] ;
          document . w r i t e ( f r u i t s . j o i n ( ) + " <br />" ) ; // U t i l i z a o
                s e p a r a d o r p a d r ˜ o " ,"
                                          a

          document . w r i t e ( f r u i t s . j o i n ( "+" ) + " <br />" ) ; // U t i l i z a
              o s e p a r a d o r passado por parˆmetro       a

          document . w r i t e ( f r u i t s . j o i n ( " and " ) ) ; // U t i l i z a o
              s e p a r a d o r passado por parˆmetro      a

          </ s c r i p t>


19 / 72                                            Ivo Calado                                            IFAL
Programa¸˜o Web
        ca
Introdu¸˜o
       ca                B´sico do JavaScript
                          a                          JavaScript avan¸ado
                                                                    c      JavaScript avan¸ado II
                                                                                          c




Usando vari´veis
           a


Exerc´
     ıcio

          Pesquisar e criar exemplos para os seguintes m´todos de um array:
                                                        e
               push
               pop
               reverse
               shift
               slice
               sort
               unshift (se poss´
                               ıvel, testar no Firefox e IE)


20 / 72                                         Ivo Calado                                     IFAL
Programa¸˜o Web
        ca
Introdu¸˜o
       ca            B´sico do JavaScript
                      a                          JavaScript avan¸ado
                                                                c      JavaScript avan¸ado II
                                                                                      c




Usando vari´veis
           a


O objeto String
          Em JavaScript o objeto String possui as seguintes
          propriedades/m´todos
                         e
               length
               toUpperCase()
               big()
               small()
               bold()
               italics()
               fixed()
               strike()
               etc
21 / 72                                     Ivo Calado                                     IFAL
Programa¸˜o Web
        ca
Introdu¸˜o
       ca             B´sico do JavaScript
                       a                          JavaScript avan¸ado
                                                                 c      JavaScript avan¸ado II
                                                                                       c




Usando vari´veis
           a


Exerc´ para casa!
     ıcio



          Pesquisar a utiliza¸˜o dos objetos:
                             ca
               Date
               Boolean
               Math
               RegExp




22 / 72                                      Ivo Calado                                     IFAL
Programa¸˜o Web
        ca
Introdu¸˜o
       ca             B´sico do JavaScript
                       a                          JavaScript avan¸ado
                                                                 c      JavaScript avan¸ado II
                                                                                       c




Usando vari´veis
           a


Operadores aritm´ticos
                e



               JavaScript oferece 7 operadores aritm´ticos (+, -, *, /, %,
                                                    e
               ++, –)




23 / 72                                      Ivo Calado                                     IFAL
Programa¸˜o Web
        ca
Introdu¸˜o
       ca             B´sico do JavaScript
                       a                          JavaScript avan¸ado
                                                                 c      JavaScript avan¸ado II
                                                                                       c




Usando vari´veis
           a


Operadores aritm´ticos
                e



               JavaScript oferece 7 operadores aritm´ticos (+, -, *, /, %,
                                                    e
               ++, –)
               Al´m disso, s˜o oferecidos os operadores de atribui¸˜o
                 e          a                                     ca
               correspondentes (=, +=, -=. *=, /= e %=)




23 / 72                                      Ivo Calado                                     IFAL
Programa¸˜o Web
        ca
Introdu¸˜o
       ca            B´sico do JavaScript
                      a                          JavaScript avan¸ado
                                                                c      JavaScript avan¸ado II
                                                                                      c




Usando vari´veis
           a


Concatena¸˜o de strings
         ca


               O operador “+” pode ser utilizado tamb´m no processo de
                                                     e
               concatena¸˜o de strings
                        ca
               Se pelo menos um dos operandos for uma string ent˜o ser´
                                                                a     a
               realizado a concatena¸˜o
                                    ca

          v1 = 20
          v2 = " 11 "
          v3 = v1 + v2

          Ir´ resultar na string 2011 e n˜o no n´mero 31!!!
            a                            a      u


24 / 72                                     Ivo Calado                                     IFAL
Programa¸˜o Web
        ca
Introdu¸˜o
       ca              B´sico do JavaScript
                        a                          JavaScript avan¸ado
                                                                  c      JavaScript avan¸ado II
                                                                                        c




Usando vari´veis
           a


Operadores de compara¸˜o
                     ca

               JavaScript especifica 7 operadores de compara¸˜o: ==,
                                                           ca
               ===, !=, >, <, >=, <= e

          < s c r i p t type=" text / javascript ">
              x = 5
              p r i n t l n ( x == 5 )
              p r i n t l n ( x == "5" )
              p r i n t l n ( x === 5 )
              p r i n t l n ( x === "5" )
          </ s c r i p t>




25 / 72                                       Ivo Calado                                     IFAL
Programa¸˜o Web
        ca
Introdu¸˜o
       ca              B´sico do JavaScript
                        a                          JavaScript avan¸ado
                                                                  c      JavaScript avan¸ado II
                                                                                        c




Usando vari´veis
           a


Operadores de compara¸˜o
                     ca

               JavaScript especifica 7 operadores de compara¸˜o: ==,
                                                           ca
               ===, !=, >, <, >=, <= e

          < s c r i p t type=" text / javascript ">
              x = 5
              p r i n t l n ( x == 5 )
              p r i n t l n ( x == "5" )
              p r i n t l n ( x === 5 )
              p r i n t l n ( x === "5" )
          </ s c r i p t>


               3 operadores l´gicos: &&, ||, !
                             o

25 / 72                                       Ivo Calado                                     IFAL
Programa¸˜o Web
        ca
Introdu¸˜o
       ca             B´sico do JavaScript
                       a                          JavaScript avan¸ado
                                                                 c      JavaScript avan¸ado II
                                                                                       c




Usando vari´veis
           a


Operadores tern´rio
               a

          Assim como Java e C++, em JavaScript ´ poss´ fazer uso do
                                               e     ıvel
          operador tern´rio.
                       a

          Qual o resultado da vari´vel valor ap´s a execu¸˜o do seguinte
                                  a            o         ca
          script?

          < s c r i p t type=" text / javascript ">
              x = 5
              v a l o r = ( x != 5 ) ? " string de teste " : 10
          </ s c r i p t>




26 / 72                                      Ivo Calado                                     IFAL
Programa¸˜o Web
        ca
Introdu¸˜o
       ca              B´sico do JavaScript
                        a                          JavaScript avan¸ado
                                                                  c      JavaScript avan¸ado II
                                                                                        c




Controle de fluxo


Express˜es condicionais: if-else
       o

               A utiliza¸˜o da estrutura de sele¸˜o if-else ´ semelhante `
                        ca                      ca          e            a
               Java

          i f ( condition )
          {
             statement 1;
             statement 2;
          } // Os d o i s comandos s ˜ o e x e c u t a d o s
                                        a
          i f ( condition )
             statement 1;
             statement 2;
             statement 3;
          // Apenas o p r i m e i r o comando ´ e x e c u t a d o
                                               e


27 / 72                                       Ivo Calado                                     IFAL
Programa¸˜o Web
        ca
Introdu¸˜o
       ca               B´sico do JavaScript
                         a                          JavaScript avan¸ado
                                                                   c      JavaScript avan¸ado II
                                                                                         c




Controle de fluxo


Exemplo if-else

          <html>
          <body>
          < s c r i p t type=" text / javascript ">
          v a r d = new Date ( ) ;
          var time = d . getHours () ;
          i f ( time < 12)
          {
          document . w r i t e ( " <b > Bom dia </b >" ) ;
          } else
          document . w r i t e ( " <b > Boa tarde </b >" ) ;
          </ s c r i p t>
          </ body>
          </ html>


28 / 72                                        Ivo Calado                                     IFAL
Programa¸˜o Web
        ca
Introdu¸˜o
       ca             B´sico do JavaScript
                       a                          JavaScript avan¸ado
                                                                 c      JavaScript avan¸ado II
                                                                                       c




Controle de fluxo


Exerc´
     ıcio



          Criar uma p´gina HTML que possua um script JavaScript que faz
                       a
          uso da fun¸˜o Math.random() para gerar n´meros aleat´rios e
                     ca                                 u            o
          caso o valor for maior que 0.5 criar o link para a p´gina do Google.
                                                              a
          Caso contr´rio, redirecionar para a p´gina globo.com .
                     a                          a




29 / 72                                      Ivo Calado                                     IFAL
Programa¸˜o Web
        ca
Introdu¸˜o
       ca            B´sico do JavaScript
                      a                          JavaScript avan¸ado
                                                                c      JavaScript avan¸ado II
                                                                                      c




Controle de fluxo


Exerc´ II
     ıcio



              Altere o exemplo if.html para que, dependendo da hora
              obtida no sistema seja impressa a aula atual (1a , 2a , 3a ,
              intervalo, 4a , 5a , 6a ).
              Sabe-se que o m´todo getMinutes() do objeto Date retorna
                              e
              os minutos atuais e getHours() retorna a hora atual.




30 / 72                                     Ivo Calado                                     IFAL
Programa¸˜o Web
        ca
Introdu¸˜o
       ca                  B´sico do JavaScript
                            a                               JavaScript avan¸ado
                                                                           c                JavaScript avan¸ado II
                                                                                                           c




Controle de fluxo


O comando For


                Em JavaScript, a estrutura for segue a mesma sintaxe da
                linguagem Java

          f o r ( v a r=s t a r t v a l u e ; v a r<=e n d v a l u e ; v a r=v a r+i n c r e m e n t )
          {
              // c o d i g o a s e r e x e c u t a d o
          }




31 / 72                                                Ivo Calado                                               IFAL
Programa¸˜o Web
        ca
Introdu¸˜o
       ca                  B´sico do JavaScript
                            a                               JavaScript avan¸ado
                                                                           c                JavaScript avan¸ado II
                                                                                                           c




Controle de fluxo


O comando For


                Em JavaScript, a estrutura for segue a mesma sintaxe da
                linguagem Java

          f o r ( v a r=s t a r t v a l u e ; v a r<=e n d v a l u e ; v a r=v a r+i n c r e m e n t )
          {
              // c o d i g o a s e r e x e c u t a d o
          }


                As estruturas while e do-while seguem a mesma estrutura da
                linguagem JavaScript


31 / 72                                                Ivo Calado                                               IFAL
Programa¸˜o Web
        ca
Introdu¸˜o
       ca           B´sico do JavaScript
                     a                          JavaScript avan¸ado
                                                               c      JavaScript avan¸ado II
                                                                                     c




Controle de fluxo


Exerc´
     ıcio




              Implemente uma p´gina Web que escreva os 6 tipos de
                                a
              cabe¸alhos fazendo uso do comando for
                  c




32 / 72                                    Ivo Calado                                     IFAL
Programa¸˜o Web
        ca
Introdu¸˜o
       ca            B´sico do JavaScript
                      a                          JavaScript avan¸ado
                                                                c      JavaScript avan¸ado II
                                                                                      c




Controle de fluxo


Controles de fluxo adicionais



              break, continue e for..in

          Qual a diferen¸a entre break e continue
                        c




33 / 72                                     Ivo Calado                                     IFAL
Programa¸˜o Web
        ca
Introdu¸˜o
       ca            B´sico do JavaScript
                      a                          JavaScript avan¸ado
                                                                c      JavaScript avan¸ado II
                                                                                      c




Controle de fluxo


Controles de fluxo adicionais



              break, continue e for..in

          Qual a diferen¸a entre break e continue
                        c
          continue interrompe a itera¸˜o atual e inicia na pr´xima itera¸˜o.
                                     ca                      o          ca
          break interrompe todo o loop.




33 / 72                                     Ivo Calado                                     IFAL
Programa¸˜o Web
        ca
Introdu¸˜o
       ca                B´sico do JavaScript
                          a                           JavaScript avan¸ado
                                                                     c      JavaScript avan¸ado II
                                                                                           c




Controle de fluxo


for..in

               A estrutura for..in tem a mesma semˆntica do for extendido
                                                  a
               do Java
               Visa realizar itera¸˜o sobre arrays e listas
                                  ca

          var x ;
          v a r m y c a r s = new A r r a y ( ) ;
          m y c a r s [ 0 ] = " Saab " ;
          m y c a r s [ 1 ] = " Volvo " ;
          m y c a r s [ 2 ] = " BMW " ;
          f o r ( x i n mycars )
          {
          document . w r i t e ( m y c a r s [ x ] + " <br />" ) ;
          }

34 / 72                                          Ivo Calado                                     IFAL
Programa¸˜o Web
        ca
Introdu¸˜o
       ca         B´sico do JavaScript
                   a                          JavaScript avan¸ado
                                                             c      JavaScript avan¸ado II
                                                                                   c




             Caixa de di´logo e Ciclo de
                        a
                  vida das vari´veis
                               a


35 / 72                                  Ivo Calado                                     IFAL
Programa¸˜o Web
        ca
Introdu¸˜o
       ca             B´sico do JavaScript
                       a                          JavaScript avan¸ado
                                                                 c      JavaScript avan¸ado II
                                                                                       c




Caixas Popup


Caixas Popup


          JavaScript oferece trˆs tipos de caixas de di´logo
                               e                       a
               AlertBox: tem como objetivo informar ao usu´rio alguma
                                                          a
               mensagem
               ConfirmBox: recebe uma entrada do usu´rio a partir da
                                                   a
               confirma¸˜o
                      ca
               PromptBox: recebe uma entrada do usu´rio a partir de uma
                                                   a
               entrada de texto



36 / 72                                      Ivo Calado                                     IFAL
Programa¸˜o Web
        ca
Introdu¸˜o
       ca              B´sico do JavaScript
                        a                          JavaScript avan¸ado
                                                                  c      JavaScript avan¸ado II
                                                                                        c




Caixas Popup


Alert Box

          <head>
          < s c r i p t type=" text / javascript ">
          function show alert ()
          {
          a l e r t ( " Hello ! I am an alert box !" ) ;
          }
          </ s c r i p t>
          </ head>
          <body>
          <i n p u t type=" button " o n c l i c k=" show_alert () " v a l u e=" Show
          alert box " />
          </ body>



37 / 72                                       Ivo Calado                                     IFAL
Programa¸˜o Web
        ca
Introdu¸˜o
       ca              B´sico do JavaScript
                        a                          JavaScript avan¸ado
                                                                  c       JavaScript avan¸ado II
                                                                                         c




Caixas Popup


Confirm Box
          <html> <head>
          < s c r i p t type=" text / javascript ">
              function show confirm () {
                  v a r r=c o n f i r m ( " Press a button !" ) ;
                  i f ( r==t r u e ) {
                      a l e r t ( " You pressed OK !" ) ;
                  } else {
                      a l e r t ( " You pressed Cancel !" ) ;
                  }
          }
          </ s c r i p t> </ head>
          <body>
               <i n p u t type=" button " o n c l i c k=" show_confirm () " v a l u e=
                       " Show a confirm box " />
          </ body> </ html>
38 / 72                                       Ivo Calado                                      IFAL
Programa¸˜o Web
        ca
Introdu¸˜o
       ca              B´sico do JavaScript
                        a                          JavaScript avan¸ado
                                                                  c      JavaScript avan¸ado II
                                                                                        c




Caixas Popup


Prompt Box
          <html>
          <head>
          < s c r i p t type=" text / javascript ">
          function disp prompt () {
              v a r fname=prompt ( " Please enter your name :" , " Your name
                     ")
              a l e r t ( fname ) ;
          }
          </ s c r i p t>
          </ head>
          <body>
          <i n p u t type=" button " o n c l i c k=" disp_prompt () " v a l u e="
                 Display
          a prompt box " />
          </ body> </ html>
39 / 72                                       Ivo Calado                                     IFAL
Programa¸˜o Web
        ca
Introdu¸˜o
       ca                  B´sico do JavaScript
                            a                               JavaScript avan¸ado
                                                                           c             JavaScript avan¸ado II
                                                                                                        c




Fun¸˜es
   co


Fun¸oes
   c˜

                Fun¸˜es em JavaScript tem o mesmo prop´sito que em
                    co                                o
                linguagens como Java e C++
                Possibilitam o re´so de c´digo
                                 u       o
                Fun¸˜es podem ser definidas no HEAD, BODY ou num
                    co
                arquivo externo .js, por´m recomenda-se n˜o adicionar na
                                        e                a
                se¸˜o BODY
                  ca

          f u n c t i o n n o m e d a f u n c a o ( v a r 1 , v a r 2 , . . . , varX )
          {
              some c o d e
          }


40 / 72                                                Ivo Calado                                            IFAL
Programa¸˜o Web
        ca
Introdu¸˜o
       ca           B´sico do JavaScript
                     a                          JavaScript avan¸ado
                                                               c      JavaScript avan¸ado II
                                                                                     c




Fun¸˜es
   co


Ciclo de vida de vari´veis em JavaScript
                     a


             Se vocˆ declara uma vari´vel dentro de uma fun¸˜o, ela ter´
                    e                a                     ca          a
             escopo apenas local e quando a fun¸˜o for finalizada a
                                                ca
             vari´vel ser´ destru´
                 a       a       ıda
             Contudo, vari´veis criadas fora de fun¸˜es podem ser
                           a                       co
             visualizadas de qualquer parte da p´gina, chamadas vari´veis
                                                 a                  a
             globais e existem desde o momento que a p´gina ´ carregada
                                                         a    e
             at´ quando ela for fechada
               e




41 / 72                                    Ivo Calado                                     IFAL
Programa¸˜o Web
        ca
Introdu¸˜o
       ca         B´sico do JavaScript
                   a                            JavaScript avan¸ado
                                                               c      JavaScript avan¸ado II
                                                                                     c




Eventos




                                         Eventos



42 / 72                                    Ivo Calado                                     IFAL
Programa¸˜o Web
        ca
Introdu¸˜o
       ca          B´sico do JavaScript
                    a                          JavaScript avan¸ado
                                                              c      JavaScript avan¸ado II
                                                                                    c




Eventos


Eventos


             Eventos s˜o a¸˜es que podem ser detectadas em JavaScript
                      a co
             A partir da implementa¸˜o de eventos, podemos criar p´ginas
                                   ca                             a
             dinˆmicas
                a
             Cada elemento em HTML tˆm um pr´prio conjunto de
                                       e      o
             eventos que podem ser capturados
             A especifica¸˜o dos eventos que ser˜o “escutados” ´ definido
                        ca                     a              e
             nas tags HTML



43 / 72                                   Ivo Calado                                     IFAL
Programa¸˜o Web
        ca
Introdu¸˜o
       ca          B´sico do JavaScript
                    a                          JavaScript avan¸ado
                                                              c      JavaScript avan¸ado II
                                                                                    c




Eventos


Exemplos de Eventos

             Clique do mouse
             Carregamento de uma p´gina Web ou imagem
                                  a
             Mover o mouse sobre uma certa ´rea da p´gina Web
                                           a        a
             Selecionar um campo de entrada de dados em um formul´rio
                                                                 a
             Submeter um formul´rio
                               a




44 / 72                                   Ivo Calado                                     IFAL
Programa¸˜o Web
        ca
Introdu¸˜o
       ca           B´sico do JavaScript
                     a                          JavaScript avan¸ado
                                                               c      JavaScript avan¸ado II
                                                                                     c




Eventos


Exemplos de Eventos

              Clique do mouse
              Carregamento de uma p´gina Web ou imagem
                                   a
              Mover o mouse sobre uma certa ´rea da p´gina Web
                                            a        a
              Selecionar um campo de entrada de dados em um formul´rio
                                                                  a
              Submeter um formul´rio
                                a

          Eventos s˜o normalmente usados em combina¸˜es com fun¸˜es e,
                   a                                  co            co
          portanto, a fun¸˜o n˜o ser´ executado at´ que o evento seja
                         ca a       a             e
          lan¸ado
             c


44 / 72                                    Ivo Calado                                     IFAL
Programa¸˜o Web
        ca
Introdu¸˜o
       ca           B´sico do JavaScript
                     a                          JavaScript avan¸ado
                                                               c      JavaScript avan¸ado II
                                                                                     c




Eventos


Eventos OnLoad e OnUnload



             Esta classe de eventos s˜o lan¸ados no carregamento e no
                                     a     c
             fechamento de uma p´gina HTML
                                   a
             OnLoad geralmente ´ utilizado para checar o tipo de browser
                                  e
             utilizado ou a vers˜o do navegador
                                a
             Um outro uso seria setar Cookies quando o usu´rio entra ou
                                                          a
             sai da p´gina Web
                     a




45 / 72                                    Ivo Calado                                     IFAL
Programa¸˜o Web
        ca
Introdu¸˜o
       ca          B´sico do JavaScript
                    a                          JavaScript avan¸ado
                                                              c      JavaScript avan¸ado II
                                                                                    c




Eventos


Eventos OnFocus, OnBlur e OnChange



             OnFocus e OnBlur s˜o eventos complementares. O primeiro ´
                               a                                     e
             lan¸ado quando um elemento ganha foco e o segundo quando
                c
             perde foco
             Onchange, por sua vez, ´ lan¸ado apenas se o conte´do do
                                      e   c                    u
             elemento tiver sido alterado




46 / 72                                   Ivo Calado                                     IFAL
Programa¸˜o Web
        ca
Introdu¸˜o
       ca              B´sico do JavaScript
                        a                          JavaScript avan¸ado
                                                                  c      JavaScript avan¸ado II
                                                                                        c




Eventos


Evento OnSubmit



               Evento lan¸ado antes de um fomul´rio ser enviado
                         c                     a
               Geralmente usado para fazer a valida¸˜o dos campos do
                                                   ca
               formul´rio
                     a

          <form method=" post " a c t i o n=" destino . htm " o n s u b m i t="
              return checkForm () ">




47 / 72                                       Ivo Calado                                     IFAL
Programa¸˜o Web
        ca
Introdu¸˜o
       ca             B´sico do JavaScript
                       a                          JavaScript avan¸ado
                                                                 c      JavaScript avan¸ado II
                                                                                       c




Eventos


Eventos OnMouseOver e OnMouseOut



               Controlam quando o mouse entra e sai de um componente
               respectivamente

          <a h r e f=" http :// www . google . com . br /" onMouseOver=" mouse
              () ; return true ">g o o g l e</a>
          <a h r e f=" http :// g1 . globo . com /" onMouseOut=" mouse2 () ;
              return true ">G1</a>




48 / 72                                      Ivo Calado                                     IFAL
Programa¸˜o Web
        ca
Introdu¸˜o
       ca              B´sico do JavaScript
                        a                          JavaScript avan¸ado
                                                                  c      JavaScript avan¸ado II
                                                                                        c




Eventos


Evento OnClick


               Evento lan¸ado quando o usu´rio clica em um componente
                         c                a
               vis´ da tela
                  ıvel
               Um exemplo de utiliza¸˜o ´ em bot˜es de submiss˜o. Caso a
                                     ca e          o             a
               fun¸˜o JavaScript retorne falso o formul´rio n˜o ´ submetido
                  ca                                   a     a e

          <i n p u t type=" submit " o n c l i c k=" return checkForm () ;"
                v a l u e=" Submeter " i d=" input3 "/>




49 / 72                                       Ivo Calado                                     IFAL
Programa¸˜o Web
        ca
Introdu¸˜o
       ca                B´sico do JavaScript
                          a                          JavaScript avan¸ado
                                                                    c      JavaScript avan¸ado II
                                                                                          c




Tratamento de exce¸oes
                  c˜




                  Tratamento de Exce¸˜es
                                    co



50 / 72                                         Ivo Calado                                     IFAL
Programa¸˜o Web
        ca
Introdu¸˜o
       ca                B´sico do JavaScript
                          a                          JavaScript avan¸ado
                                                                    c           JavaScript avan¸ado II
                                                                                               c




Tratamento de exce¸oes
                  c˜


Tratamento de exce¸oes
                  c˜

               Assim como outras linguagens de programa¸˜o, JavaScript
                                                          ca
               oferece suporte ao tratamento de erros atrav´s do uso de
                                                           e
               exce¸˜es
                   co
               A sintaxe em JavaScript ´ bastante semelhante ao que
                                       e
               acontece em C++ e Java

            try {
                 // B l o c o que pode l a n c a r e x c e ¸ ˜ o
                                                           ca
          } catch ( ex ) {
               // Tratamento de e x c e c ˜ o
                                          ¸a
               s t r = e x . message // r e c u p e r a o e r r o g e r a d o
          }


51 / 72                                         Ivo Calado                                          IFAL
Programa¸˜o Web
        ca
Introdu¸˜o
       ca                 B´sico do JavaScript
                           a                          JavaScript avan¸ado
                                                                     c      JavaScript avan¸ado II
                                                                                           c




Tratamento de exce¸oes
                  c˜


A cl´usula throw
    a

                Al´m de capturar exce¸˜es, podemos lan¸´-las
                  e                  co               ca
                Para tal, fazemos uso da cl´usula throw
                                           a
                Ela possui a mesma semˆntica do comando an´logo, em Java,
                                      a                   a
                throw!

          i f ( x >10)
          {
              t h r o w " Err1 " ;
          } else
                 i f ( x<0 ) {
              t h r o w " Err2 " ;
          }

52 / 72                                          Ivo Calado                                     IFAL
Programa¸˜o Web
        ca
Introdu¸˜o
       ca                B´sico do JavaScript
                          a                          JavaScript avan¸ado
                                                                    c      JavaScript avan¸ado II
                                                                                          c




Tratamento de exce¸oes
                  c˜


Exerc´
     ıcio! :)

              Pesquisar sobre o objeto navigator

          Qual a fun¸˜o deste objeto?
                    ca




53 / 72                                         Ivo Calado                                     IFAL
Programa¸˜o Web
        ca
Introdu¸˜o
       ca                B´sico do JavaScript
                          a                          JavaScript avan¸ado
                                                                    c      JavaScript avan¸ado II
                                                                                          c




Tratamento de exce¸oes
                  c˜


Exerc´
     ıcio! :)

              Pesquisar sobre o objeto navigator

          Qual a fun¸˜o deste objeto?
                      ca
          O objeto navigator cont´m todas as informa¸˜es sobre o browser
                                  e                 co
          visitante, como:
              Nome da aplica¸˜o
                            ca
              Vers˜o do navegador
                  a
              Plataforma
              etc

53 / 72                                         Ivo Calado                                     IFAL
Programa¸˜o Web
        ca
Introdu¸˜o
       ca                B´sico do JavaScript
                          a                          JavaScript avan¸ado
                                                                    c      JavaScript avan¸ado II
                                                                                          c




Tratamento de exce¸oes
                  c˜


Exerc´ 2! :)
     ıcio




              Pesquisar sobre eventos relacionados a tempo
              setTimeout e clearTimeout




54 / 72                                         Ivo Calado                                     IFAL
Programa¸˜o Web
        ca
Introdu¸˜o
       ca         B´sico do JavaScript
                   a                          JavaScript avan¸ado
                                                             c      JavaScript avan¸ado II
                                                                                   c




HTML DOM




                              HTML DOM



55 / 72                                  Ivo Calado                                     IFAL
Programa¸˜o Web
        ca
Introdu¸˜o
       ca            B´sico do JavaScript
                      a                          JavaScript avan¸ado
                                                                c      JavaScript avan¸ado II
                                                                                      c




HTML DOM


O que ´?
      e


          O que ´?
                e




56 / 72                                     Ivo Calado                                     IFAL
Programa¸˜o Web
        ca
Introdu¸˜o
       ca            B´sico do JavaScript
                      a                          JavaScript avan¸ado
                                                                c      JavaScript avan¸ado II
                                                                                      c




HTML DOM


O que ´?
      e


          O que ´?
                e
          De acordo com o W3C o DOM (Documento Object Model) ´         e
          definido como:
          ”The W3C Document Object Model (DOM) is a platform and
          language-neutral interface that allows programs and scripts to
          dynamically access and update the content, structure, and style of
          a document.”




56 / 72                                     Ivo Calado                                     IFAL
Programa¸˜o Web
        ca
Introdu¸˜o
       ca            B´sico do JavaScript
                      a                          JavaScript avan¸ado
                                                                c      JavaScript avan¸ado II
                                                                                      c




HTML DOM


O que ´?
      e


          O que ´?
                e
          De acordo com o W3C o DOM (Documento Object Model) ´         e
          definido como:
          ”The W3C Document Object Model (DOM) is a platform and
          language-neutral interface that allows programs and scripts to
          dynamically access and update the content, structure, and style of
          a document.”
          Em resumo HTML DOM == HTML + DOM


56 / 72                                     Ivo Calado                                     IFAL
Programa¸˜o Web
        ca
Introdu¸˜o
       ca           B´sico do JavaScript
                     a                          JavaScript avan¸ado
                                                               c      JavaScript avan¸ado II
                                                                                     c




HTML DOM


Em outras palavras...


              Trata-se de um padr˜o de modelagem dos elementos HTML
                                 a
              como objetos
              Uma abordagem padr˜o para acesso e altera¸˜o do HTMl
                                a                      ca
              programa¸˜
                      co
              Um padr˜o W3C
                     a
          Em outras palavras: O HTML DOM ´ um padr˜o para
                                             e        a
          recupera¸˜o, altera¸˜o, adi¸˜o ou remo¸˜o de elementos
                  ca          ca     ca         ca
          HTML e suas propriedades


57 / 72                                    Ivo Calado                                     IFAL
Programa¸˜o Web
        ca
Introdu¸˜o
       ca           B´sico do JavaScript
                     a                          JavaScript avan¸ado
                                                               c      JavaScript avan¸ado II
                                                                                     c




HTML DOM


N´s DOM
 o


          O DOM segue a mesma filosofia de modelagem do JDOM, ou seja:

              O documento inteiro ´ um n´
                                  e     o
              Cada elemento HTML ´ um n´
                                 e     o
              O texto dos elementos HTML s˜o n´s
                                          a o
              Cada atributo do HTML ´ um atributo de um n´
                                    e                    o
              Coment´rios s˜o n´s de coment´rio
                    a      a o             a



58 / 72                                    Ivo Calado                                     IFAL
Programa¸˜o Web
        ca
Introdu¸˜o
       ca                B´sico do JavaScript
                          a                            JavaScript avan¸ado
                                                                      c      JavaScript avan¸ado II
                                                                                            c




HTML DOM


Exemplo


          <html>
            <head>
               < t i t l e>DOM T u t o r i a l</ t i t l e>
            </ head>
            <body>
               <h1>DOM L e s s o n one</h1>
               <p>H e l l o w o r l d !</p>
            </ body>
          </ html>




59 / 72                                           Ivo Calado                                     IFAL
Programa¸˜o Web
        ca
Introdu¸˜o
       ca         B´sico do JavaScript
                   a                          JavaScript avan¸ado
                                                             c      JavaScript avan¸ado II
                                                                                   c




HTML DOM


Navegando entre a hierarquia de n´s
                                 o




60 / 72                                  Ivo Calado                                     IFAL
Programa¸˜o Web
        ca
Introdu¸˜o
       ca           B´sico do JavaScript
                     a                          JavaScript avan¸ado
                                                               c      JavaScript avan¸ado II
                                                                                     c




HTML DOM


Propriedades b´sicas de um elemento HTML DOM
              a


             x.innerHTML - conte´do textual de x
                                u
             x.nodeName - o nome de x
             x.nodeValue - o valor do x
             x.parentNode - referˆncia ao elemento pai de x
                                 e
             x.childNodes - N´s filhos de x
                             o
             x.attributes - n´s atributos de x
                             o




61 / 72                                    Ivo Calado                                     IFAL
Programa¸˜o Web
        ca
Introdu¸˜o
       ca              B´sico do JavaScript
                        a                          JavaScript avan¸ado
                                                                  c       JavaScript avan¸ado II
                                                                                         c




HTML DOM


A propriedade innerHTML

               ´
               E utilizado para recuperar ou substituir o conte´do de um
                                                               u
               elemento HTML, inclusive <html> e <body>
               Pode ser utilizada tamb´m para visualizar o c´digo fonte de
                                      e                     o
               uma p´gina alterada dinamicamente
                     a

          <p i d=" intro ">H e l l o World !</p>

          < s c r i p t type=" text / javascript ">
              t x t=document . g e t E l e m e n t B y I d ( " intro " ) . innerHTML ;
              document . w r i t e ( " <p > The text from the intro paragraph :
                       " + t x t + " </p >" ) ;
          </ s c r i p t>


62 / 72                                       Ivo Calado                                      IFAL
Programa¸˜o Web
        ca
Introdu¸˜o
       ca                 B´sico do JavaScript
                           a                              JavaScript avan¸ado
                                                                         c              JavaScript avan¸ado II
                                                                                                       c




HTML DOM


Propriedades childNodes e nodeValue

          Uma segunda forma de obten¸˜o ´ a partir da combina¸˜o das
                                      ca e                   ca
          propriedades childNodes e nodeValue
          <p i d=" intro ">H e l l o World !</p>

          < s c r i p t type=" text / javascript ">
              t x t=document . g e t E l e m e n t B y I d ( " intro " ) . c h i l d N o d e s [ 0 ] .
                     nodeValue ;
              document . w r i t e ( " <p > The text from the intro paragraph :
                       " + t x t + " </p >" ) ;
          </ s c r i p t>




63 / 72                                              Ivo Calado                                             IFAL
Programa¸˜o Web
        ca
Introdu¸˜o
       ca            B´sico do JavaScript
                      a                          JavaScript avan¸ado
                                                                c      JavaScript avan¸ado II
                                                                                      c




HTML DOM


Acessando N´s
           o



          Existem basicamente trˆs forma de acessar os n´s da ´rvore
                                e                       o     a
          HTML:
              getElementById
              getElementByTagName
              Navegando na estrutura dos n´s
                                          o




64 / 72                                     Ivo Calado                                     IFAL
Programa¸˜o Web
        ca
Introdu¸˜o
       ca            B´sico do JavaScript
                      a                          JavaScript avan¸ado
                                                                c      JavaScript avan¸ado II
                                                                                      c




HTML DOM


getElementById




              Trata-se do m´todo mais utilizado para recupera¸˜o de valores
                           e                                 ca
              Recebe como o id do objeto a ser acessado
          Ver exemplo...




65 / 72                                     Ivo Calado                                     IFAL
Programa¸˜o Web
        ca
Introdu¸˜o
       ca             B´sico do JavaScript
                       a                          JavaScript avan¸ado
                                                                 c                  JavaScript avan¸ado II
                                                                                                   c




HTML DOM


getElementsByTagName

               Retorna todos os elementos da tag passada por parˆmetro
                                                                a

             document . getElementsByTagName ( "p" ) ;                  // R e t o r n a t o d o s
                  o s e l e m e n t o s p do HTML




66 / 72                                      Ivo Calado                                                 IFAL
Programa¸˜o Web
        ca
Introdu¸˜o
       ca               B´sico do JavaScript
                         a                          JavaScript avan¸ado
                                                                   c                  JavaScript avan¸ado II
                                                                                                     c




HTML DOM


getElementsByTagName

               Retorna todos os elementos da tag passada por parˆmetro
                                                                a

             document . getElementsByTagName ( "p" ) ;                    // R e t o r n a t o d o s
                  o s e l e m e n t o s p do HTML


          Qual o significado do c´digo abaixo?
                                o
          document . g e t E l e m e n t B y I d ( ’ main ’ ) . getElementsByTagName ( "p
              ") ;




66 / 72                                        Ivo Calado                                                 IFAL
Programa¸˜o Web
        ca
Introdu¸˜o
       ca               B´sico do JavaScript
                         a                          JavaScript avan¸ado
                                                                   c                  JavaScript avan¸ado II
                                                                                                     c




HTML DOM


getElementsByTagName

               Retorna todos os elementos da tag passada por parˆmetro
                                                                a

             document . getElementsByTagName ( "p" ) ;                    // R e t o r n a t o d o s
                  o s e l e m e n t o s p do HTML


          Qual o significado do c´digo abaixo?
                                o
          document . g e t E l e m e n t B y I d ( ’ main ’ ) . getElementsByTagName ( "p
              ") ;


               Os itens podem s˜o indexados como em um vetor!!
                               a

66 / 72                                        Ivo Calado                                                 IFAL
Programa¸˜o Web
        ca
Introdu¸˜o
       ca             B´sico do JavaScript
                       a                          JavaScript avan¸ado
                                                                 c      JavaScript avan¸ado II
                                                                                       c




HTML DOM


Exerc´
     ıcio




          Criar um formul´rio que antes de ser submetido ser´ checado por
                          a                                   a
          valores vazio. E caso isso ocorra, cancele a transmiss˜o e imprima
                                                                a
          um texto na cor vermelha indicando que houve erro.




67 / 72                                      Ivo Calado                                     IFAL
Programa¸˜o Web
        ca
Introdu¸˜o
       ca               B´sico do JavaScript
                         a                          JavaScript avan¸ado
                                                                   c      JavaScript avan¸ado II
                                                                                         c




HTML DOM


Alterando as propriedades de um elemento

               At´ agora vimos como alterar o conte´do de um elemento
                 e                                 u
               HTML via propriedade innerHTML
               Por´m, ´ poss´ alterar o conte´do diretamente sem
                  e e        ıvel            u
               “reescrever” um novo HTML

          <html>
          <body>
          < s c r i p t type=" text / javascript ">
              document . body . b g C o l o r=" lavender " ;
          </ s c r i p t>
          </ body>
          </ html>


68 / 72                                        Ivo Calado                                     IFAL
Programa¸˜o Web
        ca
Introdu¸˜o
       ca                B´sico do JavaScript
                          a                          JavaScript avan¸ado
                                                                    c          JavaScript avan¸ado II
                                                                                              c




HTML DOM


Exemplo 2


           <html>
          <body>
          <p i d=" p1 ">H e l l o World !</p>
          < s c r i p t type=" text / javascript ">
          document . g e t E l e m e n t B y I d ( " p1 " ) . innerHTML=" New text !" ;
          </ s c r i p t>
          </ body>
          </ html>




69 / 72                                         Ivo Calado                                         IFAL
Programa¸˜o Web
        ca
Introdu¸˜o
       ca              B´sico do JavaScript
                        a                          JavaScript avan¸ado
                                                                  c      JavaScript avan¸ado II
                                                                                        c




HTML DOM


Mudando um elemento a partir de eventos

               ´
               E poss´ alterar uma propriedade diretamente a partir do
                     ıvel
               lan¸amento de um evento
                  c

          <html>
          <body>
          <i n p u t type=" button " o n c l i c k=" document . body . bgColor =’
                 lavender ’; "
          v a l u e=" Change background color " />
          </ body>
          </ html>




70 / 72                                       Ivo Calado                                     IFAL
Programa¸˜o Web
        ca
Introdu¸˜o
       ca                  B´sico do JavaScript
                            a                              JavaScript avan¸ado
                                                                          c               JavaScript avan¸ado II
                                                                                                         c




HTML DOM


JavaScript + CSS

                 Em JavaScript as regras CSS podem ser customizadas
                 durante a execu¸˜o
                                ca
                 Para isso, faz-se uso da propriedade style de cada elemento

          < s c r i p t type=" text / javascript ">
          f u n c t i o n ChangeStyle ()
          {
              document . g e t E l e m e n t B y I d ( " p1 " ) . s t y l e . c o l o r=" blue " ;
              document . g e t E l e m e n t B y I d ( " p1 " ) . s t y l e . f o n t F a m i l y=" Arial
                      ";
          }
          </ s c r i p t>


71 / 72                                               Ivo Calado                                              IFAL
Programa¸˜o Web
        ca
Introdu¸˜o
       ca            B´sico do JavaScript
                      a                          JavaScript avan¸ado
                                                                c      JavaScript avan¸ado II
                                                                                      c




HTML DOM


Exerc´
     ıcio




          Altere o exerc´ anterior para que as propriedades sejam
                        ıcio
          customizadas via CSS




72 / 72                                     Ivo Calado                                     IFAL
Programa¸˜o Web
        ca

Weitere ähnliche Inhalte

Andere mochten auch

Introdução a eXtensible Markup Language (XML)
Introdução a eXtensible Markup Language (XML)Introdução a eXtensible Markup Language (XML)
Introdução a eXtensible Markup Language (XML)Ivo Calado
 
Programação para Kernel Linux - Parte 2
Programação para Kernel Linux - Parte 2Programação para Kernel Linux - Parte 2
Programação para Kernel Linux - Parte 2Ivo Calado
 
Programação para Kernel Linux - Parte 1
Programação para Kernel Linux - Parte 1Programação para Kernel Linux - Parte 1
Programação para Kernel Linux - Parte 1Ivo Calado
 
Aula 1 linguagem html (1)
Aula 1   linguagem html (1)Aula 1   linguagem html (1)
Aula 1 linguagem html (1)Kaoru Hatake
 
PHP Day - PHP para iniciantes
PHP Day - PHP para iniciantesPHP Day - PHP para iniciantes
PHP Day - PHP para iniciantesAlmir Mendes
 
Exercicios Php
Exercicios PhpExercicios Php
Exercicios Phpsofteam
 
Introdução ao Excel 2010
Introdução ao Excel 2010Introdução ao Excel 2010
Introdução ao Excel 2010José Calado
 
Php e mysql aplicacao completa a partir do zero
Php e mysql   aplicacao completa a partir do zeroPhp e mysql   aplicacao completa a partir do zero
Php e mysql aplicacao completa a partir do zeroFred Ramos
 
Funções e Fórmulas em Excel 2010
Funções e Fórmulas em Excel 2010Funções e Fórmulas em Excel 2010
Funções e Fórmulas em Excel 2010Daniel Brandão
 
Curso Linguagem de Programação I - PHP Básico
Curso Linguagem de Programação I - PHP BásicoCurso Linguagem de Programação I - PHP Básico
Curso Linguagem de Programação I - PHP BásicoNorton Guimarães
 
Lista de exercícios resolvidos
Lista de exercícios resolvidosLista de exercícios resolvidos
Lista de exercícios resolvidosCrishna Irion
 
Curso de PHP Básico ao Avançado
Curso de PHP Básico ao AvançadoCurso de PHP Básico ao Avançado
Curso de PHP Básico ao AvançadoLuiz Junior
 
Curso de Excel 2007/2010 (Aula 01 e 02)
Curso de Excel 2007/2010 (Aula 01 e 02)Curso de Excel 2007/2010 (Aula 01 e 02)
Curso de Excel 2007/2010 (Aula 01 e 02)Instituto Inovar
 
Excel Básico
Excel BásicoExcel Básico
Excel Básicoaprcds
 

Andere mochten auch (20)

Introdução a eXtensible Markup Language (XML)
Introdução a eXtensible Markup Language (XML)Introdução a eXtensible Markup Language (XML)
Introdução a eXtensible Markup Language (XML)
 
Programação para Kernel Linux - Parte 2
Programação para Kernel Linux - Parte 2Programação para Kernel Linux - Parte 2
Programação para Kernel Linux - Parte 2
 
Programação para Kernel Linux - Parte 1
Programação para Kernel Linux - Parte 1Programação para Kernel Linux - Parte 1
Programação para Kernel Linux - Parte 1
 
HTML
HTMLHTML
HTML
 
Minicurso Web. Front-end e HTML5 (parte 1)
Minicurso Web. Front-end e HTML5 (parte 1)Minicurso Web. Front-end e HTML5 (parte 1)
Minicurso Web. Front-end e HTML5 (parte 1)
 
Aula 1 linguagem html (1)
Aula 1   linguagem html (1)Aula 1   linguagem html (1)
Aula 1 linguagem html (1)
 
Curso de Desenvolvimento Web - Módulo 02 - CSS
Curso de Desenvolvimento Web - Módulo 02 - CSSCurso de Desenvolvimento Web - Módulo 02 - CSS
Curso de Desenvolvimento Web - Módulo 02 - CSS
 
PHP Day - PHP para iniciantes
PHP Day - PHP para iniciantesPHP Day - PHP para iniciantes
PHP Day - PHP para iniciantes
 
Exercicios Php
Exercicios PhpExercicios Php
Exercicios Php
 
Introdução ao Excel 2010
Introdução ao Excel 2010Introdução ao Excel 2010
Introdução ao Excel 2010
 
Curso de Desenvolvimento Web - Módulo 03 - JavaScript
Curso de Desenvolvimento Web - Módulo 03 - JavaScriptCurso de Desenvolvimento Web - Módulo 03 - JavaScript
Curso de Desenvolvimento Web - Módulo 03 - JavaScript
 
Curso de Desenvolvimento Web - Módulo 01 - HTML
Curso de Desenvolvimento Web - Módulo 01 - HTMLCurso de Desenvolvimento Web - Módulo 01 - HTML
Curso de Desenvolvimento Web - Módulo 01 - HTML
 
Php e mysql aplicacao completa a partir do zero
Php e mysql   aplicacao completa a partir do zeroPhp e mysql   aplicacao completa a partir do zero
Php e mysql aplicacao completa a partir do zero
 
Funções e Fórmulas em Excel 2010
Funções e Fórmulas em Excel 2010Funções e Fórmulas em Excel 2010
Funções e Fórmulas em Excel 2010
 
Curso Linguagem de Programação I - PHP Básico
Curso Linguagem de Programação I - PHP BásicoCurso Linguagem de Programação I - PHP Básico
Curso Linguagem de Programação I - PHP Básico
 
Lista de exercícios resolvidos
Lista de exercícios resolvidosLista de exercícios resolvidos
Lista de exercícios resolvidos
 
Curso de PHP Básico ao Avançado
Curso de PHP Básico ao AvançadoCurso de PHP Básico ao Avançado
Curso de PHP Básico ao Avançado
 
Curso de Excel 2007/2010 (Aula 01 e 02)
Curso de Excel 2007/2010 (Aula 01 e 02)Curso de Excel 2007/2010 (Aula 01 e 02)
Curso de Excel 2007/2010 (Aula 01 e 02)
 
Excel Básico
Excel BásicoExcel Básico
Excel Básico
 
Aula I - Excel
Aula I - ExcelAula I - Excel
Aula I - Excel
 

Ähnlich wie JavaScript: Introdução, Básico e Avançado em

Java script vs vb script
Java script vs vb scriptJava script vs vb script
Java script vs vb scriptNielson Santana
 
Por que devo aprender JavaScript?
Por que devo aprender JavaScript?Por que devo aprender JavaScript?
Por que devo aprender JavaScript?Breno Alves
 
Curso Java #01 - Introdução
Curso Java #01 - IntroduçãoCurso Java #01 - Introdução
Curso Java #01 - IntroduçãoRenato Sousa
 
Desenvolvendo aplicativos nativos com React Native
Desenvolvendo aplicativos nativos com React NativeDesenvolvendo aplicativos nativos com React Native
Desenvolvendo aplicativos nativos com React NativeLuís Felipe Souza
 
Caelum java-objetos-fj11
Caelum java-objetos-fj11Caelum java-objetos-fj11
Caelum java-objetos-fj11Caique Moretto
 
Desenvolvendo com Dojo Toolkit
Desenvolvendo com Dojo ToolkitDesenvolvendo com Dojo Toolkit
Desenvolvendo com Dojo ToolkitFlávio Lisboa
 
Java: A Máquina Virtual e seu Mercado de Trabalho
Java: A Máquina Virtual e seu Mercado de TrabalhoJava: A Máquina Virtual e seu Mercado de Trabalho
Java: A Máquina Virtual e seu Mercado de TrabalhoAndrey Masiero
 
GT-Digital Preservation - Camada de Interface
GT-Digital Preservation - Camada de InterfaceGT-Digital Preservation - Camada de Interface
GT-Digital Preservation - Camada de InterfaceRoberto Beraldo Chaiben
 
Desenvolvimento RIA com Java
Desenvolvimento RIA com JavaDesenvolvimento RIA com Java
Desenvolvimento RIA com Javaarmeniocardoso
 
Desenvolvimento Ria com Java
Desenvolvimento Ria com JavaDesenvolvimento Ria com Java
Desenvolvimento Ria com JavaTI Infnet
 
Javascript levado a sério
Javascript levado a sérioJavascript levado a sério
Javascript levado a sériosaspi2
 
Javascript levado a serio
Javascript levado a serioJavascript levado a serio
Javascript levado a serioJaydson Gomes
 
Java, NetBeans e Orientação a Objetos
Java, NetBeans e Orientação a ObjetosJava, NetBeans e Orientação a Objetos
Java, NetBeans e Orientação a ObjetosJoão Longo
 
Desenvolvimento web - conceitos, tecnologia e tendências.
Desenvolvimento web - conceitos, tecnologia e tendências.Desenvolvimento web - conceitos, tecnologia e tendências.
Desenvolvimento web - conceitos, tecnologia e tendências.Valmir Justo
 

Ähnlich wie JavaScript: Introdução, Básico e Avançado em (20)

Java4web
Java4webJava4web
Java4web
 
Java script vs vb script
Java script vs vb scriptJava script vs vb script
Java script vs vb script
 
Java Servlets
Java ServletsJava Servlets
Java Servlets
 
Apresentando Groovy e Grails
Apresentando Groovy e GrailsApresentando Groovy e Grails
Apresentando Groovy e Grails
 
Por que devo aprender JavaScript?
Por que devo aprender JavaScript?Por que devo aprender JavaScript?
Por que devo aprender JavaScript?
 
Curso Java #01 - Introdução
Curso Java #01 - IntroduçãoCurso Java #01 - Introdução
Curso Java #01 - Introdução
 
Desenvolvendo aplicativos nativos com React Native
Desenvolvendo aplicativos nativos com React NativeDesenvolvendo aplicativos nativos com React Native
Desenvolvendo aplicativos nativos com React Native
 
Caelum Java
Caelum JavaCaelum Java
Caelum Java
 
Caelum java-objetos-fj11
Caelum java-objetos-fj11Caelum java-objetos-fj11
Caelum java-objetos-fj11
 
Caelum java-objetos-fj11
Caelum java-objetos-fj11Caelum java-objetos-fj11
Caelum java-objetos-fj11
 
Desenvolvendo com Dojo Toolkit
Desenvolvendo com Dojo ToolkitDesenvolvendo com Dojo Toolkit
Desenvolvendo com Dojo Toolkit
 
Java: A Máquina Virtual e seu Mercado de Trabalho
Java: A Máquina Virtual e seu Mercado de TrabalhoJava: A Máquina Virtual e seu Mercado de Trabalho
Java: A Máquina Virtual e seu Mercado de Trabalho
 
GT-Digital Preservation - Camada de Interface
GT-Digital Preservation - Camada de InterfaceGT-Digital Preservation - Camada de Interface
GT-Digital Preservation - Camada de Interface
 
Desenvolvimento RIA com Java
Desenvolvimento RIA com JavaDesenvolvimento RIA com Java
Desenvolvimento RIA com Java
 
Desenvolvimento Ria com Java
Desenvolvimento Ria com JavaDesenvolvimento Ria com Java
Desenvolvimento Ria com Java
 
Javascript levado a sério
Javascript levado a sérioJavascript levado a sério
Javascript levado a sério
 
Javascript levado a serio
Javascript levado a serioJavascript levado a serio
Javascript levado a serio
 
JavaScript Moderno
JavaScript ModernoJavaScript Moderno
JavaScript Moderno
 
Java, NetBeans e Orientação a Objetos
Java, NetBeans e Orientação a ObjetosJava, NetBeans e Orientação a Objetos
Java, NetBeans e Orientação a Objetos
 
Desenvolvimento web - conceitos, tecnologia e tendências.
Desenvolvimento web - conceitos, tecnologia e tendências.Desenvolvimento web - conceitos, tecnologia e tendências.
Desenvolvimento web - conceitos, tecnologia e tendências.
 

JavaScript: Introdução, Básico e Avançado em

  • 1. Introdu¸˜o ca B´sico do JavaScript a JavaScript avan¸ado c JavaScript avan¸ado II c Programa¸˜o Web ca Javascript Ivo Calado Instituto Federal de Educa¸˜o, Ciˆncia e Tecnologia de Alagoas ca e 6 de Novembro de 2012 1 / 72 Ivo Calado IFAL Programa¸˜o Web ca
  • 2. Introdu¸˜o ca B´sico do JavaScript a JavaScript avan¸ado c JavaScript avan¸ado II c Roteiro 1 Introdu¸˜o ca 2 B´sico do JavaScript a 3 JavaScript avan¸ado c 4 JavaScript avan¸ado II c 2 / 72 Ivo Calado IFAL Programa¸˜o Web ca
  • 3. Introdu¸˜o ca B´sico do JavaScript a JavaScript avan¸ado c JavaScript avan¸ado II c O que ´ Javascript e O que vimos at´ aqui? e Linguagens que possuem como foco a visualiza¸˜o da ca informa¸˜o ca N˜o possibilitam a execu¸˜o de fluxos de c´digo a ca o 3 / 72 Ivo Calado IFAL Programa¸˜o Web ca
  • 4. Introdu¸˜o ca B´sico do JavaScript a JavaScript avan¸ado c JavaScript avan¸ado II c O que ´ Javascript e O que vimos at´ aqui? e Linguagens que possuem como foco a visualiza¸˜o da ca informa¸˜o ca N˜o possibilitam a execu¸˜o de fluxos de c´digo a ca o N˜o s˜o destinadas a programadores!! a a 3 / 72 Ivo Calado IFAL Programa¸˜o Web ca
  • 5. Introdu¸˜o ca B´sico do JavaScript a JavaScript avan¸ado c JavaScript avan¸ado II c O que ´ Javascript e O que vimos at´ aqui? e Linguagens que possuem como foco a visualiza¸˜o da ca informa¸˜o ca N˜o possibilitam a execu¸˜o de fluxos de c´digo a ca o N˜o s˜o destinadas a programadores!! a a JavaScript foi projetado para adicionar interatividade ` a p´ginas HTML a Trata-se de uma linguagem de script Trata-se de uma linguagem interpretada 3 / 72 Ivo Calado IFAL Programa¸˜o Web ca
  • 6. Introdu¸˜o ca B´sico do JavaScript a JavaScript avan¸ado c JavaScript avan¸ado II c O que ´ Javascript e O que vimos at´ aqui? e Linguagens que possuem como foco a visualiza¸˜o da ca informa¸˜o ca N˜o possibilitam a execu¸˜o de fluxos de c´digo a ca o N˜o s˜o destinadas a programadores!! a a JavaScript foi projetado para adicionar interatividade ` a p´ginas HTML a Trata-se de uma linguagem de script Trata-se de uma linguagem interpretada O que ´ uma linguagem interpretada? e 3 / 72 Ivo Calado IFAL Programa¸˜o Web ca
  • 7. Introdu¸˜o ca B´sico do JavaScript a JavaScript avan¸ado c JavaScript avan¸ado II c O que ´ Javascript e O que vimos at´ aqui? e Linguagens que possuem como foco a visualiza¸˜o da ca informa¸˜o ca N˜o possibilitam a execu¸˜o de fluxos de c´digo a ca o N˜o s˜o destinadas a programadores!! a a JavaScript foi projetado para adicionar interatividade ` a p´ginas HTML a Trata-se de uma linguagem de script Trata-se de uma linguagem interpretada O que ´ uma linguagem interpretada? e Significa que o script ´ executada sem uma pr´via compila¸˜o e e ca 3 / 72 Ivo Calado IFAL Programa¸˜o Web ca
  • 8. Introdu¸˜o ca B´sico do JavaScript a JavaScript avan¸ado c JavaScript avan¸ado II c O que ´ Javascript e Curiosidades Qual a rela¸˜o entre Java e JavaScript? ca 4 / 72 Ivo Calado IFAL Programa¸˜o Web ca
  • 9. Introdu¸˜o ca B´sico do JavaScript a JavaScript avan¸ado c JavaScript avan¸ado II c O que ´ Javascript e Curiosidades Qual a rela¸˜o entre Java e JavaScript? ca Nenhuma. Trata-se de linguagens completamente diferentes. Uma criada pela Sun e a outra pela Netscape! 4 / 72 Ivo Calado IFAL Programa¸˜o Web ca
  • 10. Introdu¸˜o ca B´sico do JavaScript a JavaScript avan¸ado c JavaScript avan¸ado II c O que ´ Javascript e Curiosidades Qual a rela¸˜o entre Java e JavaScript? ca Nenhuma. Trata-se de linguagens completamente diferentes. Uma criada pela Sun e a outra pela Netscape! Qual o nome oficial da linguagem JavaScript? ECMAScript! Desenvolvido e mantido pela ECMA International Organization 4 / 72 Ivo Calado IFAL Programa¸˜o Web ca
  • 11. Introdu¸˜o ca B´sico do JavaScript a JavaScript avan¸ado c JavaScript avan¸ado II c Hello World! Hello World Para adicionar algum script JavaScript basta fazer uso da tag script tendo como valor do campo type: text/javascript <html> <body> < s c r i p t type=" text / javascript "> document . w r i t e ( " <h1 > Hello World ! </ h1 >" ) ; </ s c r i p t> </ body> </ html> document.write ´ a maneira padr˜o para escrita na sa´ e a ıda! 5 / 72 Ivo Calado IFAL Programa¸˜o Web ca
  • 12. Introdu¸˜o ca B´sico do JavaScript a JavaScript avan¸ado c JavaScript avan¸ado II c Hello World! Como tornar JavaScript compat´ com navegadores ıvel antigos? Deve-se fazer uso dos coment´rios HTML para “esconder” o a c´digo JavaScript do navegador para manter a o retrocompatibilidade! <html> <body> < s c r i p t type=" text / javascript "> <!−− document . w r i t e ( " Hello World !" ) ; //−−> </ s c r i p t> </ body> </ html> 6 / 72 Ivo Calado IFAL Programa¸˜o Web ca
  • 13. Introdu¸˜o ca B´sico do JavaScript a JavaScript avan¸ado c JavaScript avan¸ado II c Onde colocar o c´digo JavaScript? o No HEAD? Scripts colocados na se¸˜o HEAD n˜o s˜o executados ca a a imediatamente e devem ser localizados em fun¸˜es! co <html> <head> < s c r i p t type=" text / javascript "> f u n c t i o n message ( ) { a l e r t ( " This alert box was called with the onload event " ); } </ s c r i p t> </ head> <body on l oa d=" message () "> </ body> </ html> 7 / 72 Ivo Calado IFAL Programa¸˜o Web ca
  • 14. Introdu¸˜o ca B´sico do JavaScript a JavaScript avan¸ado c JavaScript avan¸ado II c Onde colocar o c´digo JavaScript? o No Body? Se vocˆ n˜o deseja que seu script esteja em uma fun¸˜o ou e a ca que ele seja destinado a escrever conte´do na tela ent˜o u a coloque-o na se¸˜o body! ca <html> <head></ head> <body> < s c r i p t type=" text / javascript "> document . w r i t e ( " This message is written by JavaScript " ) ; </ s c r i p t> </ body> </ html> 8 / 72 Ivo Calado IFAL Programa¸˜o Web ca
  • 15. Introdu¸˜o ca B´sico do JavaScript a JavaScript avan¸ado c JavaScript avan¸ado II c Onde colocar o c´digo JavaScript? o Usando em um arquivo externo? Se vocˆ deseja compartilhar seu c´digo JavaScript entre e o diversas p´ginas, pode-se fazer uso de uma p´gina externa a a <html> <head> < s c r i p t type=" text / javascript " s r c=" xxx . js "></ s c r i p t> </ head> <body on l oa d=" helloworld () "> </ body> </ html> 9 / 72 Ivo Calado IFAL Programa¸˜o Web ca
  • 16. Introdu¸˜o ca B´sico do JavaScript a JavaScript avan¸ado c JavaScript avan¸ado II c Comandos Uso do ponto e v´ ırgula Em JavaScript, ´ facultativo o uso do ; (ponto e v´ e ırgula) para delimitar o fim de um comando! <html> <body> < s c r i p t type=" text / javascript "> document . w r i t e ( " Fim de linha COM ponto e virgula " ) ; document . w r i t e ( " Fim de linha SEM ponto e virgula " ) </ s c r i p t> </ body> </ html> 10 / 72 Ivo Calado IFAL Programa¸˜o Web ca
  • 17. Introdu¸˜o ca B´sico do JavaScript a JavaScript avan¸ado c JavaScript avan¸ado II c Comandos Pulando linha em JavaScript Como vocˆ deve ter percebido no exemplo anterior, as duas e frases ficaram na mesma linha Este comportamento acontece porque toda sa´ de enviada ıda pelo JavaScript ´ tratata como c´digo HTML. Por isso, e o deve-se fazer uso do “<br/>” ao final da frase document . w r i t e ( " Fim de linha COM ponto e virgula < br />" ) ; document . w r i t e ( " Fim de linha SEM ponto e virgula < br />" ) 11 / 72 Ivo Calado IFAL Programa¸˜o Web ca
  • 18. Introdu¸˜o ca B´sico do JavaScript a JavaScript avan¸ado c JavaScript avan¸ado II c Comandos Coment´rios de linhas e multilinhas a JavaScript oferece dois tipos de coment´rios “//” e “/* */” a A semˆntica ´ a mesma do que acontece em linguagens como a e Java e C++ <html> <body> < s c r i p t type=" text / javascript "> /∗ The c o d e b e l o w w i l l w r i t e one h e a d i n g ∗/ document . w r i t e ( " <h1 > This is a heading </ h1 >" ) ; </ s c r i p t> </ body> </ html> 12 / 72 Ivo Calado IFAL Programa¸˜o Web ca
  • 19. Introdu¸˜o ca B´sico do JavaScript a JavaScript avan¸ado c JavaScript avan¸ado II c Usando vari´veis a Usando vari´veis a Vari´veis em JavaScript tem a mesma semˆntica que em a a outras linguagens, isto ´, armazenar informa¸˜es na mem´ria e co o Assim como o restante do JavaScript, s˜o case-sensitive a Podem ser iniciadas por [aA-zZ], ou $ A partir do segundo caracter poder ser dos seguintes tipos [aA-zZ], [0-9], ou $ 13 / 72 Ivo Calado IFAL Programa¸˜o Web ca
  • 20. Introdu¸˜o ca B´sico do JavaScript a JavaScript avan¸ado c JavaScript avan¸ado II c Usando vari´veis a Exemplo do uso de vari´veis a <html> <body> < s c r i p t type=" text / javascript "> var firstname ; f i r s t n a m e=" Hege " ; document . w r i t e ( f i r s t n a m e ) ; document . w r i t e ( " <br />" ) ; f i r s t n a m e=" Tove " ; document . w r i t e ( f i r s t n a m e ) ; </ s c r i p t> </ body> </ html> 14 / 72 Ivo Calado IFAL Programa¸˜o Web ca
  • 21. Introdu¸˜o ca B´sico do JavaScript a JavaScript avan¸ado c JavaScript avan¸ado II c Usando vari´veis a Uso de vari´veis n˜o declaradas a a ´ E poss´ atribuir valores ` vari´veis ainda n˜o declaradas. ıvel a a a <html> <body> < s c r i p t type=" text / javascript "> f i r s t n a m e=" Hege " ; </ s c r i p t> </ body> </ html> Nestes caso, a vari´vel ´ criada no momento da atribui¸˜o! a e ca 15 / 72 Ivo Calado IFAL Programa¸˜o Web ca
  • 22. Introdu¸˜o ca B´sico do JavaScript a JavaScript avan¸ado c JavaScript avan¸ado II c Usando vari´veis a Arrays Em JavaScript ´ poss´ criar array para armazenamento de e ıvel diversos tipos de objetos Os objetos n˜o precisam ser do mesmo tipo a Existem 4 tipos de instancia¸˜o! ca var myCars=new A r r a y ( ) ; var myCars=new A r r a y ( 1 0 ) ; var myCars=new A r r a y ( " Saab " , " Volvo " , " BMW " ) ; var myCars =[" Saab " , " Volvo " , " BMW " ] ; 16 / 72 Ivo Calado IFAL Programa¸˜o Web ca
  • 23. Introdu¸˜o ca B´sico do JavaScript a JavaScript avan¸ado c JavaScript avan¸ado II c Usando vari´veis a Indexando arrays Assim como Java, arrays em JavaScript s˜o indexados a partir a da posi¸˜o 0 ca v a r myCars =[" Saab " , " Volvo " , " BMW " ] ; document . w r i t e ( myCars [ 0 ] ) // I m p r i m e Saab 17 / 72 Ivo Calado IFAL Programa¸˜o Web ca
  • 24. Introdu¸˜o ca B´sico do JavaScript a JavaScript avan¸ado c JavaScript avan¸ado II c Usando vari´veis a Unindo arrays Em JavaScript ´ poss´ unir dois arrays de maneira bastante e ıvel simples < s c r i p t type=" text / javascript "> v a r p a r e n t s = [ " Jani " , " Tove " ] ; v a r c h i l d r e n = [ " Cecilie " , " Lone " ] ; var family = parents . concat ( c h i l d r e n ) ; document . w r i t e ( f a m i l y ) ; </ s c r i p t> 18 / 72 Ivo Calado IFAL Programa¸˜o Web ca
  • 25. Introdu¸˜o ca B´sico do JavaScript a JavaScript avan¸ado c JavaScript avan¸ado II c Usando vari´veis a Unindo todos elementos de um array em uma string ´ E poss´ unir todos os elementos de um array em uma unica ıvel ´ string atrav´s do m´todo join e e v a r f r u i t s = [ " Banana " , " Orange " , " Apple " , " Mango " ] ; document . w r i t e ( f r u i t s . j o i n ( ) + " <br />" ) ; // U t i l i z a o s e p a r a d o r p a d r ˜ o " ," a document . w r i t e ( f r u i t s . j o i n ( "+" ) + " <br />" ) ; // U t i l i z a o s e p a r a d o r passado por parˆmetro a document . w r i t e ( f r u i t s . j o i n ( " and " ) ) ; // U t i l i z a o s e p a r a d o r passado por parˆmetro a </ s c r i p t> 19 / 72 Ivo Calado IFAL Programa¸˜o Web ca
  • 26. Introdu¸˜o ca B´sico do JavaScript a JavaScript avan¸ado c JavaScript avan¸ado II c Usando vari´veis a Exerc´ ıcio Pesquisar e criar exemplos para os seguintes m´todos de um array: e push pop reverse shift slice sort unshift (se poss´ ıvel, testar no Firefox e IE) 20 / 72 Ivo Calado IFAL Programa¸˜o Web ca
  • 27. Introdu¸˜o ca B´sico do JavaScript a JavaScript avan¸ado c JavaScript avan¸ado II c Usando vari´veis a O objeto String Em JavaScript o objeto String possui as seguintes propriedades/m´todos e length toUpperCase() big() small() bold() italics() fixed() strike() etc 21 / 72 Ivo Calado IFAL Programa¸˜o Web ca
  • 28. Introdu¸˜o ca B´sico do JavaScript a JavaScript avan¸ado c JavaScript avan¸ado II c Usando vari´veis a Exerc´ para casa! ıcio Pesquisar a utiliza¸˜o dos objetos: ca Date Boolean Math RegExp 22 / 72 Ivo Calado IFAL Programa¸˜o Web ca
  • 29. Introdu¸˜o ca B´sico do JavaScript a JavaScript avan¸ado c JavaScript avan¸ado II c Usando vari´veis a Operadores aritm´ticos e JavaScript oferece 7 operadores aritm´ticos (+, -, *, /, %, e ++, –) 23 / 72 Ivo Calado IFAL Programa¸˜o Web ca
  • 30. Introdu¸˜o ca B´sico do JavaScript a JavaScript avan¸ado c JavaScript avan¸ado II c Usando vari´veis a Operadores aritm´ticos e JavaScript oferece 7 operadores aritm´ticos (+, -, *, /, %, e ++, –) Al´m disso, s˜o oferecidos os operadores de atribui¸˜o e a ca correspondentes (=, +=, -=. *=, /= e %=) 23 / 72 Ivo Calado IFAL Programa¸˜o Web ca
  • 31. Introdu¸˜o ca B´sico do JavaScript a JavaScript avan¸ado c JavaScript avan¸ado II c Usando vari´veis a Concatena¸˜o de strings ca O operador “+” pode ser utilizado tamb´m no processo de e concatena¸˜o de strings ca Se pelo menos um dos operandos for uma string ent˜o ser´ a a realizado a concatena¸˜o ca v1 = 20 v2 = " 11 " v3 = v1 + v2 Ir´ resultar na string 2011 e n˜o no n´mero 31!!! a a u 24 / 72 Ivo Calado IFAL Programa¸˜o Web ca
  • 32. Introdu¸˜o ca B´sico do JavaScript a JavaScript avan¸ado c JavaScript avan¸ado II c Usando vari´veis a Operadores de compara¸˜o ca JavaScript especifica 7 operadores de compara¸˜o: ==, ca ===, !=, >, <, >=, <= e < s c r i p t type=" text / javascript "> x = 5 p r i n t l n ( x == 5 ) p r i n t l n ( x == "5" ) p r i n t l n ( x === 5 ) p r i n t l n ( x === "5" ) </ s c r i p t> 25 / 72 Ivo Calado IFAL Programa¸˜o Web ca
  • 33. Introdu¸˜o ca B´sico do JavaScript a JavaScript avan¸ado c JavaScript avan¸ado II c Usando vari´veis a Operadores de compara¸˜o ca JavaScript especifica 7 operadores de compara¸˜o: ==, ca ===, !=, >, <, >=, <= e < s c r i p t type=" text / javascript "> x = 5 p r i n t l n ( x == 5 ) p r i n t l n ( x == "5" ) p r i n t l n ( x === 5 ) p r i n t l n ( x === "5" ) </ s c r i p t> 3 operadores l´gicos: &&, ||, ! o 25 / 72 Ivo Calado IFAL Programa¸˜o Web ca
  • 34. Introdu¸˜o ca B´sico do JavaScript a JavaScript avan¸ado c JavaScript avan¸ado II c Usando vari´veis a Operadores tern´rio a Assim como Java e C++, em JavaScript ´ poss´ fazer uso do e ıvel operador tern´rio. a Qual o resultado da vari´vel valor ap´s a execu¸˜o do seguinte a o ca script? < s c r i p t type=" text / javascript "> x = 5 v a l o r = ( x != 5 ) ? " string de teste " : 10 </ s c r i p t> 26 / 72 Ivo Calado IFAL Programa¸˜o Web ca
  • 35. Introdu¸˜o ca B´sico do JavaScript a JavaScript avan¸ado c JavaScript avan¸ado II c Controle de fluxo Express˜es condicionais: if-else o A utiliza¸˜o da estrutura de sele¸˜o if-else ´ semelhante ` ca ca e a Java i f ( condition ) { statement 1; statement 2; } // Os d o i s comandos s ˜ o e x e c u t a d o s a i f ( condition ) statement 1; statement 2; statement 3; // Apenas o p r i m e i r o comando ´ e x e c u t a d o e 27 / 72 Ivo Calado IFAL Programa¸˜o Web ca
  • 36. Introdu¸˜o ca B´sico do JavaScript a JavaScript avan¸ado c JavaScript avan¸ado II c Controle de fluxo Exemplo if-else <html> <body> < s c r i p t type=" text / javascript "> v a r d = new Date ( ) ; var time = d . getHours () ; i f ( time < 12) { document . w r i t e ( " <b > Bom dia </b >" ) ; } else document . w r i t e ( " <b > Boa tarde </b >" ) ; </ s c r i p t> </ body> </ html> 28 / 72 Ivo Calado IFAL Programa¸˜o Web ca
  • 37. Introdu¸˜o ca B´sico do JavaScript a JavaScript avan¸ado c JavaScript avan¸ado II c Controle de fluxo Exerc´ ıcio Criar uma p´gina HTML que possua um script JavaScript que faz a uso da fun¸˜o Math.random() para gerar n´meros aleat´rios e ca u o caso o valor for maior que 0.5 criar o link para a p´gina do Google. a Caso contr´rio, redirecionar para a p´gina globo.com . a a 29 / 72 Ivo Calado IFAL Programa¸˜o Web ca
  • 38. Introdu¸˜o ca B´sico do JavaScript a JavaScript avan¸ado c JavaScript avan¸ado II c Controle de fluxo Exerc´ II ıcio Altere o exemplo if.html para que, dependendo da hora obtida no sistema seja impressa a aula atual (1a , 2a , 3a , intervalo, 4a , 5a , 6a ). Sabe-se que o m´todo getMinutes() do objeto Date retorna e os minutos atuais e getHours() retorna a hora atual. 30 / 72 Ivo Calado IFAL Programa¸˜o Web ca
  • 39. Introdu¸˜o ca B´sico do JavaScript a JavaScript avan¸ado c JavaScript avan¸ado II c Controle de fluxo O comando For Em JavaScript, a estrutura for segue a mesma sintaxe da linguagem Java f o r ( v a r=s t a r t v a l u e ; v a r<=e n d v a l u e ; v a r=v a r+i n c r e m e n t ) { // c o d i g o a s e r e x e c u t a d o } 31 / 72 Ivo Calado IFAL Programa¸˜o Web ca
  • 40. Introdu¸˜o ca B´sico do JavaScript a JavaScript avan¸ado c JavaScript avan¸ado II c Controle de fluxo O comando For Em JavaScript, a estrutura for segue a mesma sintaxe da linguagem Java f o r ( v a r=s t a r t v a l u e ; v a r<=e n d v a l u e ; v a r=v a r+i n c r e m e n t ) { // c o d i g o a s e r e x e c u t a d o } As estruturas while e do-while seguem a mesma estrutura da linguagem JavaScript 31 / 72 Ivo Calado IFAL Programa¸˜o Web ca
  • 41. Introdu¸˜o ca B´sico do JavaScript a JavaScript avan¸ado c JavaScript avan¸ado II c Controle de fluxo Exerc´ ıcio Implemente uma p´gina Web que escreva os 6 tipos de a cabe¸alhos fazendo uso do comando for c 32 / 72 Ivo Calado IFAL Programa¸˜o Web ca
  • 42. Introdu¸˜o ca B´sico do JavaScript a JavaScript avan¸ado c JavaScript avan¸ado II c Controle de fluxo Controles de fluxo adicionais break, continue e for..in Qual a diferen¸a entre break e continue c 33 / 72 Ivo Calado IFAL Programa¸˜o Web ca
  • 43. Introdu¸˜o ca B´sico do JavaScript a JavaScript avan¸ado c JavaScript avan¸ado II c Controle de fluxo Controles de fluxo adicionais break, continue e for..in Qual a diferen¸a entre break e continue c continue interrompe a itera¸˜o atual e inicia na pr´xima itera¸˜o. ca o ca break interrompe todo o loop. 33 / 72 Ivo Calado IFAL Programa¸˜o Web ca
  • 44. Introdu¸˜o ca B´sico do JavaScript a JavaScript avan¸ado c JavaScript avan¸ado II c Controle de fluxo for..in A estrutura for..in tem a mesma semˆntica do for extendido a do Java Visa realizar itera¸˜o sobre arrays e listas ca var x ; v a r m y c a r s = new A r r a y ( ) ; m y c a r s [ 0 ] = " Saab " ; m y c a r s [ 1 ] = " Volvo " ; m y c a r s [ 2 ] = " BMW " ; f o r ( x i n mycars ) { document . w r i t e ( m y c a r s [ x ] + " <br />" ) ; } 34 / 72 Ivo Calado IFAL Programa¸˜o Web ca
  • 45. Introdu¸˜o ca B´sico do JavaScript a JavaScript avan¸ado c JavaScript avan¸ado II c Caixa de di´logo e Ciclo de a vida das vari´veis a 35 / 72 Ivo Calado IFAL Programa¸˜o Web ca
  • 46. Introdu¸˜o ca B´sico do JavaScript a JavaScript avan¸ado c JavaScript avan¸ado II c Caixas Popup Caixas Popup JavaScript oferece trˆs tipos de caixas de di´logo e a AlertBox: tem como objetivo informar ao usu´rio alguma a mensagem ConfirmBox: recebe uma entrada do usu´rio a partir da a confirma¸˜o ca PromptBox: recebe uma entrada do usu´rio a partir de uma a entrada de texto 36 / 72 Ivo Calado IFAL Programa¸˜o Web ca
  • 47. Introdu¸˜o ca B´sico do JavaScript a JavaScript avan¸ado c JavaScript avan¸ado II c Caixas Popup Alert Box <head> < s c r i p t type=" text / javascript "> function show alert () { a l e r t ( " Hello ! I am an alert box !" ) ; } </ s c r i p t> </ head> <body> <i n p u t type=" button " o n c l i c k=" show_alert () " v a l u e=" Show alert box " /> </ body> 37 / 72 Ivo Calado IFAL Programa¸˜o Web ca
  • 48. Introdu¸˜o ca B´sico do JavaScript a JavaScript avan¸ado c JavaScript avan¸ado II c Caixas Popup Confirm Box <html> <head> < s c r i p t type=" text / javascript "> function show confirm () { v a r r=c o n f i r m ( " Press a button !" ) ; i f ( r==t r u e ) { a l e r t ( " You pressed OK !" ) ; } else { a l e r t ( " You pressed Cancel !" ) ; } } </ s c r i p t> </ head> <body> <i n p u t type=" button " o n c l i c k=" show_confirm () " v a l u e= " Show a confirm box " /> </ body> </ html> 38 / 72 Ivo Calado IFAL Programa¸˜o Web ca
  • 49. Introdu¸˜o ca B´sico do JavaScript a JavaScript avan¸ado c JavaScript avan¸ado II c Caixas Popup Prompt Box <html> <head> < s c r i p t type=" text / javascript "> function disp prompt () { v a r fname=prompt ( " Please enter your name :" , " Your name ") a l e r t ( fname ) ; } </ s c r i p t> </ head> <body> <i n p u t type=" button " o n c l i c k=" disp_prompt () " v a l u e=" Display a prompt box " /> </ body> </ html> 39 / 72 Ivo Calado IFAL Programa¸˜o Web ca
  • 50. Introdu¸˜o ca B´sico do JavaScript a JavaScript avan¸ado c JavaScript avan¸ado II c Fun¸˜es co Fun¸oes c˜ Fun¸˜es em JavaScript tem o mesmo prop´sito que em co o linguagens como Java e C++ Possibilitam o re´so de c´digo u o Fun¸˜es podem ser definidas no HEAD, BODY ou num co arquivo externo .js, por´m recomenda-se n˜o adicionar na e a se¸˜o BODY ca f u n c t i o n n o m e d a f u n c a o ( v a r 1 , v a r 2 , . . . , varX ) { some c o d e } 40 / 72 Ivo Calado IFAL Programa¸˜o Web ca
  • 51. Introdu¸˜o ca B´sico do JavaScript a JavaScript avan¸ado c JavaScript avan¸ado II c Fun¸˜es co Ciclo de vida de vari´veis em JavaScript a Se vocˆ declara uma vari´vel dentro de uma fun¸˜o, ela ter´ e a ca a escopo apenas local e quando a fun¸˜o for finalizada a ca vari´vel ser´ destru´ a a ıda Contudo, vari´veis criadas fora de fun¸˜es podem ser a co visualizadas de qualquer parte da p´gina, chamadas vari´veis a a globais e existem desde o momento que a p´gina ´ carregada a e at´ quando ela for fechada e 41 / 72 Ivo Calado IFAL Programa¸˜o Web ca
  • 52. Introdu¸˜o ca B´sico do JavaScript a JavaScript avan¸ado c JavaScript avan¸ado II c Eventos Eventos 42 / 72 Ivo Calado IFAL Programa¸˜o Web ca
  • 53. Introdu¸˜o ca B´sico do JavaScript a JavaScript avan¸ado c JavaScript avan¸ado II c Eventos Eventos Eventos s˜o a¸˜es que podem ser detectadas em JavaScript a co A partir da implementa¸˜o de eventos, podemos criar p´ginas ca a dinˆmicas a Cada elemento em HTML tˆm um pr´prio conjunto de e o eventos que podem ser capturados A especifica¸˜o dos eventos que ser˜o “escutados” ´ definido ca a e nas tags HTML 43 / 72 Ivo Calado IFAL Programa¸˜o Web ca
  • 54. Introdu¸˜o ca B´sico do JavaScript a JavaScript avan¸ado c JavaScript avan¸ado II c Eventos Exemplos de Eventos Clique do mouse Carregamento de uma p´gina Web ou imagem a Mover o mouse sobre uma certa ´rea da p´gina Web a a Selecionar um campo de entrada de dados em um formul´rio a Submeter um formul´rio a 44 / 72 Ivo Calado IFAL Programa¸˜o Web ca
  • 55. Introdu¸˜o ca B´sico do JavaScript a JavaScript avan¸ado c JavaScript avan¸ado II c Eventos Exemplos de Eventos Clique do mouse Carregamento de uma p´gina Web ou imagem a Mover o mouse sobre uma certa ´rea da p´gina Web a a Selecionar um campo de entrada de dados em um formul´rio a Submeter um formul´rio a Eventos s˜o normalmente usados em combina¸˜es com fun¸˜es e, a co co portanto, a fun¸˜o n˜o ser´ executado at´ que o evento seja ca a a e lan¸ado c 44 / 72 Ivo Calado IFAL Programa¸˜o Web ca
  • 56. Introdu¸˜o ca B´sico do JavaScript a JavaScript avan¸ado c JavaScript avan¸ado II c Eventos Eventos OnLoad e OnUnload Esta classe de eventos s˜o lan¸ados no carregamento e no a c fechamento de uma p´gina HTML a OnLoad geralmente ´ utilizado para checar o tipo de browser e utilizado ou a vers˜o do navegador a Um outro uso seria setar Cookies quando o usu´rio entra ou a sai da p´gina Web a 45 / 72 Ivo Calado IFAL Programa¸˜o Web ca
  • 57. Introdu¸˜o ca B´sico do JavaScript a JavaScript avan¸ado c JavaScript avan¸ado II c Eventos Eventos OnFocus, OnBlur e OnChange OnFocus e OnBlur s˜o eventos complementares. O primeiro ´ a e lan¸ado quando um elemento ganha foco e o segundo quando c perde foco Onchange, por sua vez, ´ lan¸ado apenas se o conte´do do e c u elemento tiver sido alterado 46 / 72 Ivo Calado IFAL Programa¸˜o Web ca
  • 58. Introdu¸˜o ca B´sico do JavaScript a JavaScript avan¸ado c JavaScript avan¸ado II c Eventos Evento OnSubmit Evento lan¸ado antes de um fomul´rio ser enviado c a Geralmente usado para fazer a valida¸˜o dos campos do ca formul´rio a <form method=" post " a c t i o n=" destino . htm " o n s u b m i t=" return checkForm () "> 47 / 72 Ivo Calado IFAL Programa¸˜o Web ca
  • 59. Introdu¸˜o ca B´sico do JavaScript a JavaScript avan¸ado c JavaScript avan¸ado II c Eventos Eventos OnMouseOver e OnMouseOut Controlam quando o mouse entra e sai de um componente respectivamente <a h r e f=" http :// www . google . com . br /" onMouseOver=" mouse () ; return true ">g o o g l e</a> <a h r e f=" http :// g1 . globo . com /" onMouseOut=" mouse2 () ; return true ">G1</a> 48 / 72 Ivo Calado IFAL Programa¸˜o Web ca
  • 60. Introdu¸˜o ca B´sico do JavaScript a JavaScript avan¸ado c JavaScript avan¸ado II c Eventos Evento OnClick Evento lan¸ado quando o usu´rio clica em um componente c a vis´ da tela ıvel Um exemplo de utiliza¸˜o ´ em bot˜es de submiss˜o. Caso a ca e o a fun¸˜o JavaScript retorne falso o formul´rio n˜o ´ submetido ca a a e <i n p u t type=" submit " o n c l i c k=" return checkForm () ;" v a l u e=" Submeter " i d=" input3 "/> 49 / 72 Ivo Calado IFAL Programa¸˜o Web ca
  • 61. Introdu¸˜o ca B´sico do JavaScript a JavaScript avan¸ado c JavaScript avan¸ado II c Tratamento de exce¸oes c˜ Tratamento de Exce¸˜es co 50 / 72 Ivo Calado IFAL Programa¸˜o Web ca
  • 62. Introdu¸˜o ca B´sico do JavaScript a JavaScript avan¸ado c JavaScript avan¸ado II c Tratamento de exce¸oes c˜ Tratamento de exce¸oes c˜ Assim como outras linguagens de programa¸˜o, JavaScript ca oferece suporte ao tratamento de erros atrav´s do uso de e exce¸˜es co A sintaxe em JavaScript ´ bastante semelhante ao que e acontece em C++ e Java try { // B l o c o que pode l a n c a r e x c e ¸ ˜ o ca } catch ( ex ) { // Tratamento de e x c e c ˜ o ¸a s t r = e x . message // r e c u p e r a o e r r o g e r a d o } 51 / 72 Ivo Calado IFAL Programa¸˜o Web ca
  • 63. Introdu¸˜o ca B´sico do JavaScript a JavaScript avan¸ado c JavaScript avan¸ado II c Tratamento de exce¸oes c˜ A cl´usula throw a Al´m de capturar exce¸˜es, podemos lan¸´-las e co ca Para tal, fazemos uso da cl´usula throw a Ela possui a mesma semˆntica do comando an´logo, em Java, a a throw! i f ( x >10) { t h r o w " Err1 " ; } else i f ( x<0 ) { t h r o w " Err2 " ; } 52 / 72 Ivo Calado IFAL Programa¸˜o Web ca
  • 64. Introdu¸˜o ca B´sico do JavaScript a JavaScript avan¸ado c JavaScript avan¸ado II c Tratamento de exce¸oes c˜ Exerc´ ıcio! :) Pesquisar sobre o objeto navigator Qual a fun¸˜o deste objeto? ca 53 / 72 Ivo Calado IFAL Programa¸˜o Web ca
  • 65. Introdu¸˜o ca B´sico do JavaScript a JavaScript avan¸ado c JavaScript avan¸ado II c Tratamento de exce¸oes c˜ Exerc´ ıcio! :) Pesquisar sobre o objeto navigator Qual a fun¸˜o deste objeto? ca O objeto navigator cont´m todas as informa¸˜es sobre o browser e co visitante, como: Nome da aplica¸˜o ca Vers˜o do navegador a Plataforma etc 53 / 72 Ivo Calado IFAL Programa¸˜o Web ca
  • 66. Introdu¸˜o ca B´sico do JavaScript a JavaScript avan¸ado c JavaScript avan¸ado II c Tratamento de exce¸oes c˜ Exerc´ 2! :) ıcio Pesquisar sobre eventos relacionados a tempo setTimeout e clearTimeout 54 / 72 Ivo Calado IFAL Programa¸˜o Web ca
  • 67. Introdu¸˜o ca B´sico do JavaScript a JavaScript avan¸ado c JavaScript avan¸ado II c HTML DOM HTML DOM 55 / 72 Ivo Calado IFAL Programa¸˜o Web ca
  • 68. Introdu¸˜o ca B´sico do JavaScript a JavaScript avan¸ado c JavaScript avan¸ado II c HTML DOM O que ´? e O que ´? e 56 / 72 Ivo Calado IFAL Programa¸˜o Web ca
  • 69. Introdu¸˜o ca B´sico do JavaScript a JavaScript avan¸ado c JavaScript avan¸ado II c HTML DOM O que ´? e O que ´? e De acordo com o W3C o DOM (Documento Object Model) ´ e definido como: ”The W3C Document Object Model (DOM) is a platform and language-neutral interface that allows programs and scripts to dynamically access and update the content, structure, and style of a document.” 56 / 72 Ivo Calado IFAL Programa¸˜o Web ca
  • 70. Introdu¸˜o ca B´sico do JavaScript a JavaScript avan¸ado c JavaScript avan¸ado II c HTML DOM O que ´? e O que ´? e De acordo com o W3C o DOM (Documento Object Model) ´ e definido como: ”The W3C Document Object Model (DOM) is a platform and language-neutral interface that allows programs and scripts to dynamically access and update the content, structure, and style of a document.” Em resumo HTML DOM == HTML + DOM 56 / 72 Ivo Calado IFAL Programa¸˜o Web ca
  • 71. Introdu¸˜o ca B´sico do JavaScript a JavaScript avan¸ado c JavaScript avan¸ado II c HTML DOM Em outras palavras... Trata-se de um padr˜o de modelagem dos elementos HTML a como objetos Uma abordagem padr˜o para acesso e altera¸˜o do HTMl a ca programa¸˜ co Um padr˜o W3C a Em outras palavras: O HTML DOM ´ um padr˜o para e a recupera¸˜o, altera¸˜o, adi¸˜o ou remo¸˜o de elementos ca ca ca ca HTML e suas propriedades 57 / 72 Ivo Calado IFAL Programa¸˜o Web ca
  • 72. Introdu¸˜o ca B´sico do JavaScript a JavaScript avan¸ado c JavaScript avan¸ado II c HTML DOM N´s DOM o O DOM segue a mesma filosofia de modelagem do JDOM, ou seja: O documento inteiro ´ um n´ e o Cada elemento HTML ´ um n´ e o O texto dos elementos HTML s˜o n´s a o Cada atributo do HTML ´ um atributo de um n´ e o Coment´rios s˜o n´s de coment´rio a a o a 58 / 72 Ivo Calado IFAL Programa¸˜o Web ca
  • 73. Introdu¸˜o ca B´sico do JavaScript a JavaScript avan¸ado c JavaScript avan¸ado II c HTML DOM Exemplo <html> <head> < t i t l e>DOM T u t o r i a l</ t i t l e> </ head> <body> <h1>DOM L e s s o n one</h1> <p>H e l l o w o r l d !</p> </ body> </ html> 59 / 72 Ivo Calado IFAL Programa¸˜o Web ca
  • 74. Introdu¸˜o ca B´sico do JavaScript a JavaScript avan¸ado c JavaScript avan¸ado II c HTML DOM Navegando entre a hierarquia de n´s o 60 / 72 Ivo Calado IFAL Programa¸˜o Web ca
  • 75. Introdu¸˜o ca B´sico do JavaScript a JavaScript avan¸ado c JavaScript avan¸ado II c HTML DOM Propriedades b´sicas de um elemento HTML DOM a x.innerHTML - conte´do textual de x u x.nodeName - o nome de x x.nodeValue - o valor do x x.parentNode - referˆncia ao elemento pai de x e x.childNodes - N´s filhos de x o x.attributes - n´s atributos de x o 61 / 72 Ivo Calado IFAL Programa¸˜o Web ca
  • 76. Introdu¸˜o ca B´sico do JavaScript a JavaScript avan¸ado c JavaScript avan¸ado II c HTML DOM A propriedade innerHTML ´ E utilizado para recuperar ou substituir o conte´do de um u elemento HTML, inclusive <html> e <body> Pode ser utilizada tamb´m para visualizar o c´digo fonte de e o uma p´gina alterada dinamicamente a <p i d=" intro ">H e l l o World !</p> < s c r i p t type=" text / javascript "> t x t=document . g e t E l e m e n t B y I d ( " intro " ) . innerHTML ; document . w r i t e ( " <p > The text from the intro paragraph : " + t x t + " </p >" ) ; </ s c r i p t> 62 / 72 Ivo Calado IFAL Programa¸˜o Web ca
  • 77. Introdu¸˜o ca B´sico do JavaScript a JavaScript avan¸ado c JavaScript avan¸ado II c HTML DOM Propriedades childNodes e nodeValue Uma segunda forma de obten¸˜o ´ a partir da combina¸˜o das ca e ca propriedades childNodes e nodeValue <p i d=" intro ">H e l l o World !</p> < s c r i p t type=" text / javascript "> t x t=document . g e t E l e m e n t B y I d ( " intro " ) . c h i l d N o d e s [ 0 ] . nodeValue ; document . w r i t e ( " <p > The text from the intro paragraph : " + t x t + " </p >" ) ; </ s c r i p t> 63 / 72 Ivo Calado IFAL Programa¸˜o Web ca
  • 78. Introdu¸˜o ca B´sico do JavaScript a JavaScript avan¸ado c JavaScript avan¸ado II c HTML DOM Acessando N´s o Existem basicamente trˆs forma de acessar os n´s da ´rvore e o a HTML: getElementById getElementByTagName Navegando na estrutura dos n´s o 64 / 72 Ivo Calado IFAL Programa¸˜o Web ca
  • 79. Introdu¸˜o ca B´sico do JavaScript a JavaScript avan¸ado c JavaScript avan¸ado II c HTML DOM getElementById Trata-se do m´todo mais utilizado para recupera¸˜o de valores e ca Recebe como o id do objeto a ser acessado Ver exemplo... 65 / 72 Ivo Calado IFAL Programa¸˜o Web ca
  • 80. Introdu¸˜o ca B´sico do JavaScript a JavaScript avan¸ado c JavaScript avan¸ado II c HTML DOM getElementsByTagName Retorna todos os elementos da tag passada por parˆmetro a document . getElementsByTagName ( "p" ) ; // R e t o r n a t o d o s o s e l e m e n t o s p do HTML 66 / 72 Ivo Calado IFAL Programa¸˜o Web ca
  • 81. Introdu¸˜o ca B´sico do JavaScript a JavaScript avan¸ado c JavaScript avan¸ado II c HTML DOM getElementsByTagName Retorna todos os elementos da tag passada por parˆmetro a document . getElementsByTagName ( "p" ) ; // R e t o r n a t o d o s o s e l e m e n t o s p do HTML Qual o significado do c´digo abaixo? o document . g e t E l e m e n t B y I d ( ’ main ’ ) . getElementsByTagName ( "p ") ; 66 / 72 Ivo Calado IFAL Programa¸˜o Web ca
  • 82. Introdu¸˜o ca B´sico do JavaScript a JavaScript avan¸ado c JavaScript avan¸ado II c HTML DOM getElementsByTagName Retorna todos os elementos da tag passada por parˆmetro a document . getElementsByTagName ( "p" ) ; // R e t o r n a t o d o s o s e l e m e n t o s p do HTML Qual o significado do c´digo abaixo? o document . g e t E l e m e n t B y I d ( ’ main ’ ) . getElementsByTagName ( "p ") ; Os itens podem s˜o indexados como em um vetor!! a 66 / 72 Ivo Calado IFAL Programa¸˜o Web ca
  • 83. Introdu¸˜o ca B´sico do JavaScript a JavaScript avan¸ado c JavaScript avan¸ado II c HTML DOM Exerc´ ıcio Criar um formul´rio que antes de ser submetido ser´ checado por a a valores vazio. E caso isso ocorra, cancele a transmiss˜o e imprima a um texto na cor vermelha indicando que houve erro. 67 / 72 Ivo Calado IFAL Programa¸˜o Web ca
  • 84. Introdu¸˜o ca B´sico do JavaScript a JavaScript avan¸ado c JavaScript avan¸ado II c HTML DOM Alterando as propriedades de um elemento At´ agora vimos como alterar o conte´do de um elemento e u HTML via propriedade innerHTML Por´m, ´ poss´ alterar o conte´do diretamente sem e e ıvel u “reescrever” um novo HTML <html> <body> < s c r i p t type=" text / javascript "> document . body . b g C o l o r=" lavender " ; </ s c r i p t> </ body> </ html> 68 / 72 Ivo Calado IFAL Programa¸˜o Web ca
  • 85. Introdu¸˜o ca B´sico do JavaScript a JavaScript avan¸ado c JavaScript avan¸ado II c HTML DOM Exemplo 2 <html> <body> <p i d=" p1 ">H e l l o World !</p> < s c r i p t type=" text / javascript "> document . g e t E l e m e n t B y I d ( " p1 " ) . innerHTML=" New text !" ; </ s c r i p t> </ body> </ html> 69 / 72 Ivo Calado IFAL Programa¸˜o Web ca
  • 86. Introdu¸˜o ca B´sico do JavaScript a JavaScript avan¸ado c JavaScript avan¸ado II c HTML DOM Mudando um elemento a partir de eventos ´ E poss´ alterar uma propriedade diretamente a partir do ıvel lan¸amento de um evento c <html> <body> <i n p u t type=" button " o n c l i c k=" document . body . bgColor =’ lavender ’; " v a l u e=" Change background color " /> </ body> </ html> 70 / 72 Ivo Calado IFAL Programa¸˜o Web ca
  • 87. Introdu¸˜o ca B´sico do JavaScript a JavaScript avan¸ado c JavaScript avan¸ado II c HTML DOM JavaScript + CSS Em JavaScript as regras CSS podem ser customizadas durante a execu¸˜o ca Para isso, faz-se uso da propriedade style de cada elemento < s c r i p t type=" text / javascript "> f u n c t i o n ChangeStyle () { document . g e t E l e m e n t B y I d ( " p1 " ) . s t y l e . c o l o r=" blue " ; document . g e t E l e m e n t B y I d ( " p1 " ) . s t y l e . f o n t F a m i l y=" Arial "; } </ s c r i p t> 71 / 72 Ivo Calado IFAL Programa¸˜o Web ca
  • 88. Introdu¸˜o ca B´sico do JavaScript a JavaScript avan¸ado c JavaScript avan¸ado II c HTML DOM Exerc´ ıcio Altere o exerc´ anterior para que as propriedades sejam ıcio customizadas via CSS 72 / 72 Ivo Calado IFAL Programa¸˜o Web ca