GustavoPaes.Net

Muita coisa sobre CSS, HTML, Javascript, Search engine optimization (seo), padrões e web

Javascript transforma 8 em 0

Tá ok, o título é um pouco sensacionalista. Mas é isso que ele faz se você não tomar um certo cuidado ao usar a função parseInt() com strings numéricas (!?) de dois dígitos, onde o primeiro é o 0.

Quer um exemplo, clique nos links abaixo e você verá o que o Javascript faz ao transformar as strings “05″ e “08″, com a função parseInt(), em números:

E aí, o que percebeu de errado? Se você for esperto, percebeu que a string “08″ se transformou em um número 0. Mas, como pode? Pode porque a função parseInt() considera que strings de números iniciados com “0″ pertencem a base octal e não decimal. O mesmo erro de conversão ocorre também para a string “09″.

Para resolver isso, precisamos passar uma parâmetro indicando que a string de número passada é da base decimal, para que ele faça a conversão correta.

Você pode indicar outras bases, segundo a W3Schools aceita de 2 a 36.

O dia que uma conta sair errada no Javascript já sabe o que pode ser. Ou você precisa voltar à escola ou forçar a base decimal.

  • 0 Comments
  • Filed under: Geral
  • Você tem todo o direto de usar Javascript para criar animações, validar dados ou melhorar a interação com o usuário. Porém, não pode obrigar o usuário a ter o Javascript ativado para acessar seu site.

    Criar scripts em Javascript não-obstrutivo é, relativamente, simples.

    Mas, o que seria um script não-obstrutivo? Scripts não-obstrutivos são Javascripts que apenas complementam uma determinada ação. Ou seja, se você não estiver com o javascript habilitado, você conseguirá realizar a determinada ação, mas de forma mais direta e menos interativa.

    Vamos a um exemplo de script obstrutivo:

    <a href="#" onclick="if(confirm('Tem certeza de que deseja sair dessa página?')) window.close();">Sair</a>

    Caso o usuário não esteja com o javascript habilitado, o link do código acima não irá realizar nenhuma função, já que o href é apenas uma âncora para o nada.

    Para transformar o código acima em um código não-obstrutivo, um simples link resolve o problema:

    <a href="http://www.google.com/" onclick="if(confirm('Tem certeza de que deseja sair dessa página?')) window.close();" onkeypress="if(confirm('Tem certeza de que deseja sair dessa página?')) window.close();">Sair</a>

    Agora, se o usuário não estiver com o javascript habilitado, ele será redirecionado para o site do Google.

    [Atualizado em 20/04/08]
    Perceba que, além de colocada o evento onclick, adicionei também o evento onkeypress. Recomenda-se fazer isso para os deficientes visuais, que utilizam o teclado para navegação, ao invés do mouse. O mesmo deve-se fazer para os demais eventos:

    • Use “onmousedown” com “onkeydown”;
    • Use “onmouseup” com “onkeyup”
    • Use “onclick” com “onkeypress”

    Fonte: A Bengala Legal
    [/atualizado]

    Claro que o exemplo acima é muito simples, mas em sua grande maioria, simples observações como essa já ajudam os usuários - principalmente os deficientes visuais - e robôs de busca.

    Uma forma fácil de desenvolver scripts não-obstrutivos é, antes de tudo, fazer seu site rodar 100% sem Javascript. Para isso, esqueça as funções interativas e pense somente no HTML, CSS e alguma outra linguagem server-side, como o PHP, caso venha a ter que usar.

    Quando tudo estiver certo, rodando numa boa, você começa a preparar os Javascripts para interagir com o usuário. Após ter criado todas as funções em Javascript, desative ele em seu browser - no Firefox você faz isso em Tools > Options… > Aba Content > Deixar desligado a opção Enable JavaScript facilmente com a extensão Web Developer - e comece a navegar pelo site.

    Se você fez bem suas funções, você nem deve perceber que o Javascript está desabilitado, ou seja, você deve conseguir realizar todas as ações disponíveis em seu site - adicionar comentários, navegar pelo menu, ler notícias, enviar e-mail (em formulários de contato) - igualmente antes de criar as funções.

    Com a febre do Ajax, muitos sites não permitem que você navegue por eles sem ter o Javascript. Além de ser ruim para os usuários que desejam navegar com ele desativado - seja por segurança, preferência pessoal ou restrições físicas do computador - é ruim também para o site, pois o Google e outros buscadores não conseguirão indexar o site.

    Você já tentou acessar o Gmail sem Javascript? Se não, então tente. Você irá se surpreender. Tudo funciona. Não há algumas funcionalidades que a versão com Javascript tem, mas o básico - que é checar e-mail - funciona muito bem.

  • 0 Comments
  • Filed under: Javascript, SEO